我正在研究一个宏,它将在一个工作簿中的多个工作表上运行,在工作表之间切换并将数据复制/粘贴到一个主工作表。
我的问题是,当我使用Windows(index).Activate切换到另一个工作表然后尝试选择要删除的一些列时,它没有正确选择列。我正在使用下面的代码,并且完全相同的代码在主表中工作得很好,但是一旦我切换到 VBA 代码中的另一个表并使用它,它就会选择从第 1 列开始到末尾的所有列数据。
下面代码背后的想法是从第 1 列开始并搜索名为“综合评分”的列。然后我想删除从第 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 文件,结果相同。