Excel VBA列范围selectselect错误的列
我正在制作一个macros,它将在一个工作簿中的多个工作表上运行,在工作表之间切换,并将数据复制/粘贴到一个主工作表。
我的问题是,当我切换到另一个工作表使用Windows(索引).Activate ,然后尝试select一些列删除,它不会正确select列。 我正在使用下面的代码,EXACT相同的代码在主表单中工作得很好,但只要切换到VBA代码中的另一个表单并使用它,它将select从第1列开始到第数据。
下面的代码背后的想法是从第1列开始,search名为“综合评级”的列。 然后我想删除从第3列开始到综合评级列的所有列。
有人能告诉我我做错了什么吗? 非常感谢您的帮助!
For counter = 1 To 40 Step 1 Cells("1", counter).Select strval = ActiveCell.Value If strval = "Composite Rating" And counter <> 3 Then Range(Cells(1, 3), Cells(1, counter - 1)).EntireColumn.Select Selection.Delete Shift:=xlLeft Exit For End If Next counter
编辑:对不起,应该提到我的设置。 我在Windows 7上使用Excel 2007.我已经尝试了xls和xlsx文件,结果相同。
尝试下面的代码:
Dim rng As Range Set rng = Range("A1:Z1").Find("Composite Rating") If Not rng Is Nothing Then If rng.Column > 3 Then Range("C1", rng).EntireColumn.Delete End If End If
Windows
集合中的index
属性在select其他窗口时发生更改 – >它是相对的!
改用Workbooks
集合。