簡體   English   中英

VBA-自定義循環

[英]VBA - custom for-loop

我想將某些表格從一張紙復制到另一張紙。 為此,我有以下代碼:

Dim start As Long
Dim eind As Long
Dim output As Long
Dim tbl As Range
Dim dest As Range

output = 5   

For start = 3 To 224 Step 13
        end = start + 10
        Set tbl = Sheets("Model").Range("C" & start & ":E" & end)
        Set dest = Sheets("Sheet1").Range("B" & output).Resize(tbl.Rows.Count, tbl.Columns.Count)
        dest.Value = tbl.Value
        output = output + 16
Next start

但是,此代碼將所有表從“模型”復制到“ Sheet1”。 我只需要名稱為A,B,C,E,G,H,J和L的表(名稱在D2,D15,D28,D41等中)。

有沒有辦法在for循環之前定義這些特定表並將其合並到循環中? 還是有其他方法可以做到這一點?

非常感謝!

我不會在您的代碼中進行計算...

(我認為這是錯位的:您想從For start = 3 To 224 Step 13循環For start = 3 To 224 Step 13 ,但是您想檢查D2,D15,D28中的名稱。所以也許應該是For start = 2 ....不確定,因為您沒有共享工作表數據結構。)

無論如何,要在循環中添加條件,只需使用以下代碼:

For start = 3 To 224 Step 13
    end = start + 10

    Select Case Sheets("Model").Range("D" & start - 1) ' I have "start -1" to adjust to rows 2, 15, 28, etc.

        ' copy only Tables with the following names in Column D...
        Case "A", "B", "C", "E", "G", "H", "J", "L"
            Set tbl = Sheets("Model").Range("C" & start & ":E" & end)
            Set dest = Sheets("Sheet1").Range("B" & output).Resize(tbl.Rows.Count, tbl.Columns.Count)
            dest.Value = tbl.Value

    End Select

    output = output + 16
Next start

暫無
暫無

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

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