在两个命名列之间插入指定数量的列

在两个命名列之间插入指定数量的列

我正在尝试使用 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 范围。请参阅此链接有关插入的更多信息。

相关内容