在Excel中添加列

use*_*700 4 excel vba excel-vba

我正在尝试创建一个Excel宏,该宏会在D列之前自动插入两列...创建该过程时,它运行良好,这里是:

Sub AddColumns()
    Columns("D:D").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub
Run Code Online (Sandbox Code Playgroud)

但是,当我打开工作表并进行尝试时,我的所有数据都被推到右侧约11列,并插入了11个空白列。我确定这必须合并有11列的某些行。Select语句选择前11列AK。

我该如何解决?

Dmi*_*liv 5

这是因为行Columns("D:D").Select。如果您不选择此列,则代码会正常工作。

改用这个:

With Range("D:D")
    .Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    .Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End With
Run Code Online (Sandbox Code Playgroud)

而且,如何避免使用Select / Active语句 :)