我有一个excel文件,我需要从名为"Simulator Data“的工作表中取出日期,并使用VBA将它们放入名为"Consolidated Data”的工作表中。"Simulator Data“中的日期从第7行开始,然后每隔31行出现在列D、E和F中(年、月、日在单独的列中),我想将它们移到"Consolidated Data”中,从第1行的step=10开始,在B、C和D列中。
我已经能够找到一些代码,但是当我尝试运行它时,它所做的就是将"Simulator Data“中的最后一个日期复制到"Consolidated Data”中的每十行中。我的代码只关注year单元格,这就是为什么它从"Simulator Data“中的D变为"Consolidated Data”中的B。我需要做哪些更改才能使其正常工作?
以下是我的代码
Sub consolidate()
Dim lastrow As Long
lastrow = ThisWorkbook.Sheets("Simulation Data").Range("B65356").End(xlUp).row
Dim srow As Long
Dim crow As Long
For srow = 7 To lastrow Step 31
For crow = 1 To lastrow Step 10
Sheets("Consolidated Data").Range("B" & crow) = Sheets("Simulation Data").Cells(srow, "D")
Next crow
Next srow
End Sub
发布于 2020-06-15 20:34:32
不确定你真的想要那个嵌套循环吗?
Sub consolidate()
Dim lastrow As Long
Dim srow As Long
Dim crow As Long
Dim wsSim As Worksheet, wsCons As Worksheet
Set wsSim = ThisWorkbook.Sheets("Simulation Data")
Set wsCons = ThisWorkbook.Sheets("Consolidated Data")
lastrow = wsSim.Range("B65356").End(xlUp).Row
crow = 1 '<< destination start row
For srow = 7 To lastrow Step 31
wsSim.Cells(srow, "D").Resize(1, 3).Copy wsCons.Range("B" & crow)
crow = crow + 10 '<< increment destination row
Next srow
End Sub
https://stackoverflow.com/questions/62396113
复制