繁体   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