簡體   English   中英

Excel VBA列范圍選擇選擇錯誤的列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM