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