我听说过很多关于.Select在Excel VBA 中使用的可理解的憎恶,但我不确定如何避免使用它.我发现如果我能够使用变量而不是Select函数,我的代码将更加可重用.但是,ActiveCell如果不使用,我不确定如何引用事物(如等)Select.
我发现这篇关于范围的文章和这个例子关于不使用select的好处却找不到怎么样的东西?
我有一组数据,其中每第三列是相同的.我想只留下第一列,必须删除其他相同的列.
起初我尝试了这个代码,但它删除了错误的列,因为在每个循环中其他列的位置都被更改了.
Sub DeleteMultipleColumns()
Dim i As Integer
Dim LastColumn As Long
Dim ws As Worksheet
Set ws = Sheets("Arkusz2")
LastColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
ws.Activate
For i = 4 To (LastColumn - 2)
ws.Columns(i).Select
Selection.Delete Shift:=xlToLeft
i = i + 3
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
在此之后我尝试了另一个使用Union.它不起作用:
Sub DeleteMultipleColumns()
Dim i As Integer
Dim LastColumn As Long
Dim ws As Worksheet
Set ws = Sheets("Arkusz2")
LastColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
ws.Activate
For i = 4 To (LastColumn - 2)
Application.Union.Columns(i).Select
i = …Run Code Online (Sandbox Code Playgroud)