[英]Excel VBA Column Range selection selecting wrong columns
我正在處理一個宏,該宏將在一個工作簿中的多個工作表上運行,在工作表之間切換並將數據復制/粘貼到一個主表中。
我的問題是,當我使用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上使用Excel2007。我在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
屬性會更改->它是相對的!
請改用Workbooks
集合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.