【发布时间】:2020-01-08 09:56:46
【问题描述】:
我有一段代码循环遍历一个工作表中的 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循环之前),然后在将您的值粘贴到Region表后执行j = j + 1。不需要第二个For ... To循环。 -
嗨 Justyna - 太棒了!非常感谢,这么简单的调整。
-
不客气 :) 我会将其作为答案发布以结束主题。