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