Vba 在excel中添加列
我正在尝试创建一个excel宏,它会自动在列D之前插入两列。。。 我创建该程序时,该程序运行良好,如下所示:Vba 在excel中添加列,vba,excel,Vba,Excel,我正在尝试创建一个excel宏,它会自动在列D之前插入两列。。。 我创建该程序时,该程序运行良好,如下所示: Sub AddColumns() Columns("D:D").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove En
Sub AddColumns()
Columns("D:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
但是,当我打开工作表并试用时,我的所有数据都会向右推,大约11列,11个空白列被插入。我敢肯定,这是因为有些行合并了11列。Select语句选择前11列A-K
如何修复此问题?由于行
列(“D:D”)的原因而发生此问题。请选择
。如果不选择此列,则代码可以正常工作
改用这个:
With Range("D:D")
.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End With
而且,:)您不需要使用select来执行此操作
Sub AddColumns()
Columns("D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("D").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
如果选择包含合并单元格的列,则选择将扩展到与这些合并单元格相交的所有列。在您的案例中,选择了11列 此外,Selection.Insert将插入尽可能多的列select:Voila
因此,请确保您的选择中没有合并的单元格。顺便说一句,是否使用选择并不重要。只要看那些合并的单元格。谢谢-这就解决了它!