簡體   English   中英

Excel VBA 多/嵌套 For 循環

[英]Excel VBA Multiple/Nested For Loops

我有一段代碼,它循環遍歷一張工作表中的 30 列以查找數據,然后將此數據復制到另一個工作表中的某個目的地。 關鍵是這些數據會不斷變化。 有時我可能會復制一列數據,有時會復制全部 30 列數據,更常見的是介於兩者之間。

我已經研究出如何遍歷我的 30 列數據。 但是,我堅持如何將每個副本粘貼到目標工作表上的最后一個旁邊。 到目前為止,它只是一直在頂部復制,因為我還沒有弄清楚如何以及在何處插入 For 循環並使行/列位置可變。

我想知道您是否可以查看下面的代碼並建議第二個 For 循環應該去哪里?

With Sheets("RAW DATA")

    ColumnCount = 30

For i = 2 To ColumnCount

    'For j = 9 To 39

    Dim Rng As Range

    Set Rng = Sheets("RAW DATA").Cells(2, i)

    If Rng.Value <> 0 And Rng.Value <> "" Then

        With Sheets("RAW DATA").Range(Sheets("RAW DATA").Cells(1, i), Sheets("RAW DATA").Cells(16, i))
        .Copy
        End With

        With Sheets("Region")
        .Cells(9, j).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End With

    Else
    End If

    'Next j

Next i

End With 

它目前在代碼中注釋掉了,但我一直在嘗試將Next j部分合並到正確的位置。

提前致謝

正如評論部分所討論的,您可以簡單地從j = 9 (在您的第一個For循環之前)開始,然后在將您的值粘貼到區域表中之后執行j = j + 1 不需要第二個For ... To循環。

(...)
    j = 9
    (...)

    For i = 2 To ColumnCount

        With Sheets("Region")
        .Cells(9, j).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End With

        j = j + 1
    (...)
    Next i

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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