Excel 按钮添加列删除上一列?
您好,我在excel 2013中制作了一个按钮,根据用户输入将一个新列添加到我的表中。现在按钮生成列,但是当我转到打印预览时,它复制的列的分隔行被删除。我的意思是:Excel 按钮添加列删除上一列?,excel,vba,Excel,Vba,您好,我在excel 2013中制作了一个按钮,根据用户输入将一个新列添加到我的表中。现在按钮生成列,但是当我转到打印预览时,它复制的列的分隔行被删除。我的意思是: ![生成新列后打印电子表格预览][1] 请注意,生成新列时,“培训”和“保修”列没有行分隔符 在新生成的列中,第一个单元格不是橙色的,并且顶部缺少一行。我没有主意了,不能使用宏,因为表格的行和列发生了变化,这意味着范围发生了变化 下面是代码 Private Sub CommandButton22_Click()
![生成新列后打印电子表格预览][1] 请注意,生成新列时,“培训”和“保修”列没有行分隔符 在新生成的列中,第一个单元格不是橙色的,并且顶部缺少一行。我没有主意了,不能使用宏,因为表格的行和列发生了变化,这意味着范围发生了变化 下面是代码
Private Sub CommandButton22_Click()
Dim colIndex As Variant
colIndex = Application.InputBox("Enter a column that you want to add: ", "What column?", , , , , , 2) '< force a text'
If colIndex = "" Then Exit Sub
With ThisWorkbook.Sheets("Sheet1").Columns(colIndex) 'reference column you want to insert
.Insert shift:=xlRight '<insert a new column , then the referenced one shifts one column to the right of the inserted one'
.Offset(, -3).Copy '< copy the column two columns to the left of the referenced one (i.e. one column left of the new one)'
.Offset(, -1).PasteSpecial xlPasteFormats '< paste formats to the new column'
Application.CutCopyMode = False
End With
End Sub
Private子命令按钮22_单击()
Dim colIndex作为变体
colIndex=Application.InputBox(“输入要添加的列:”,“什么列?”,,,,,2)” .Insert shift:=xlRight'当您将列、行或单元格添加到现有区域时,我了解到Excel无法以我期望的方式可靠地格式化新区域。对我来说,显式格式化新添加的范围更容易,这样我就知道我得到了什么。在您的情况下,您正在查找边框,以便现有VBA代码可以执行此操作
选项显式
子测试()
Dim newCol As系列
设置newCol=ActiveSheet.Range(“S1:S100”)
带新边框(左)
.LineStyle=xlContinuous
.Weight=xlThin
.ColorIndex=xlColorIndexAutomatic
以
端接头
Hi-deatkhamp;您是的“云”用户吗?是的,谢谢您上次的帮助。不客气。如果你能提供反馈和(可能)密切的问题,那就太好了。那你为什么要改名字呢?我不知道它离我有多近,我登录了这个gmail,所以当我登录stack时,它会自动使用这个gmail。插入列(或行或单元格)不能可靠地复制周围单元格的(预期)格式,至少在我的经验中是这样的。因此,为了确保获得所需的列格式,您需要修改单元格的
边框
,以确保它。我从我的OP lol中得到了相同的结果,我认为它没有任何作用。您的OP适合我(我在发布答案之前没有尝试过)。所以现在我猜。。。插入列中的(-3)列没有绘制左边框。手动查看单元格格式设置,请参见。它看起来是正确的,因为相邻列的右侧边框已打开。嘿,彼得,按钮是否也可以复制颜色,因为当它生成新列时,它只是一个空白的空框?注意到I列了吗?您是否尝试过.Offset(,-1).ColorIndex=.Offset(,-3).ColorIndex
?您发布的代码行只有在整个列都是相同颜色时才起作用,但我的模式是一行灰色一行白色,重复到表尾。使用您发布的代码,我得到的对象不支持此属性?