我正在尝试使用 VBA 在两个预先存在且定义的列之间插入一定数量的列。
但是,它一直在范围左侧插入新列。我想插入范围内的列。
这是我的 VBA 代码,用于提供一些上下文:
Sub InsertNewColummnbetween()
Range(Range("Data_FirstColumn").Offset(, 1), Range("Data_Net").Offset(,2)).EntireColumn.
Application.DisplayAlerts = False
Dim i As Integer
For i = 1 To Range("Assumptions!B26").Value
Columns(1).INSERT
Next i
Application.DisplayAlerts = True
End Sub
我的命令有什么问题?
答案1
这可能取决于您是否有一个包含数据的工作表,或者是否定义了 ListObject。
在您的代码中,我会避免循环,因为您只想插入 2 列一次。
Sub InsertNewColumn()
Dim objSheet as Worksheet
Set objSheet = ActiveWorksheet
With objSheet
.Columns(2).Insert shift:=xlRight
End With
End Sub
答案2
Insert 方法仅允许将 Range 向下或向右移动(在本例中为向右移动)。因此,您需要指定要位于插入列右侧的 Column 范围。请参阅此链接有关插入的更多信息。