Excel VBA:在所有列的左侧插入新列,直到最后一列
我试图在从D开始的每一列旁边插入一列,我的问题是列的数量会改变,所以我需要识别代码中的最后一列 每当我运行下面的代码时,它似乎无法正确识别最后一列Excel VBA:在所有列的左侧插入新列,直到最后一列,excel,vba,Excel,Vba,我试图在从D开始的每一列旁边插入一列,我的问题是列的数量会改变,所以我需要识别代码中的最后一列 每当我运行下面的代码时,它似乎无法正确识别最后一列 Sub InsertColumnsv2() Dim iLastCol As Long Dim StartCell As Range Set StartCell = Range("A1") iLastCol = StartCell.SpecialCells(xlCellTypeLastCell).Column For colx
Sub InsertColumnsv2()
Dim iLastCol As Long
Dim StartCell As Range
Set StartCell = Range("A1")
iLastCol = StartCell.SpecialCells(xlCellTypeLastCell).Column
For colx = 4 To iLastCol Step 2
ActiveSheet.UsedRange
iLastCol = StartCell.SpecialCells(xlCellTypeLastCell).Column
Columns(colx).Insert Shift:=xlToRight
Next colx
End Sub
当您在中间添加列时,
iLastCol
会发生变化,因此您需要向后循环,使用Step-1
,因为您每一步都要添加一列
注意:不要依赖ActiveSheet
,而是使用和工作表(“您的SheetName”)
完全限定您的列
和单元格
对象
选项显式
子InsertColumnsv2()
Dim iLastCol和colx一样长
对于工作表(“Sheet1”)当您在其间添加列时,iLastCol
会发生变化,因此您需要向后循环,使用Step-1
,因为您每一步都要添加一列
注意:不要依赖ActiveSheet
,而是使用和工作表(“您的SheetName”)
完全限定您的列
和单元格
对象
选项显式
子InsertColumnsv2()
Dim iLastCol和colx一样长
使用工作表(“Sheet1”)”解决插入问题的更好方法是从头到尾
Sub InsertColumnsv2()
Dim iLastCol As Long
Dim StartCell As Range
Set StartCell = Range("A1")
iLastCol = StartCell.SpecialCells(xlCellTypeLastCell).Column
For colx = iLastCol To 4 Step -1
Columns(colx).Insert Shift:=xlToRight
Next colx
End Sub
解决插入问题的更好方法是从头开始
Sub InsertColumnsv2()
Dim iLastCol As Long
Dim StartCell As Range
Set StartCell = Range("A1")
iLastCol = StartCell.SpecialCells(xlCellTypeLastCell).Column
For colx = iLastCol To 4 Step -1
Columns(colx).Insert Shift:=xlToRight
Next colx
End Sub
试着倒着运行它
Sub InsertColumnsv2()
Dim iLastCol As Long
Dim colx As Long
iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column
For colx = iLastCol To 4 Step -1
Columns(colx).Insert Shift:=xlToRight
Next colx
End Sub
试着倒着运行它
Sub InsertColumnsv2()
Dim iLastCol As Long
Dim colx As Long
iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column
For colx = iLastCol To 4 Step -1
Columns(colx).Insert Shift:=xlToRight
Next colx
End Sub
由于未将用于工作表(…
语句,请从.Columns(colx)
>中删除
,这将引发运行时错误,因为未将用于工作表(…
语句,请从.Columns(colx)中删除
)
>>这将引发运行时错误。您应该使用希望此代码使用的工作表限定所有列
,不要依赖ActiveSheet
(请阅读我下面的答案以了解原因)您应该使用希望此代码使用的工作表限定所有列
,不要依赖ActiveSheet
(请阅读下面的答案以了解原因)