如何将数据从工作表复制到新工作表的次数不定?

时间:2019-04-09 21:35:28

标签: excel vba

我在Sheet(2)的A列到第108行中有一列标题。B到J列具有与那些标题相关的数据。我需要基于Sheet(1)中单元格中的整数,将A列与B列复制到Sheet(3)“ X”次,复制到Sheet(3)的B列和C列中。对于每个B-J列,都需要重复此过程,确保获取标题A列,并将其基于Sheet(1)中单元格中的整数“ X”次粘贴到Sheet(3)的B和C列中。我需要复制并粘贴,以在上一次粘贴数据之后的行的Sheet(3)中开始重复。

另一个要求是,每当将两列数据[意味着Sheet(2)的A列和BJ列之一]粘贴到Sheet(3)中时,一年的一周都标记在根据Sheet(1)中的开始日期粘贴数据的每一行的Sheet(3)。将Sheet(2)数据中的每一次粘贴到Sheet(3)中,一年中的一周应该比开始日期继续偏离一周。

此外,如果再次运行VBA,则它需要覆盖粘贴的数据,而不能继续沿列向下移动。

1 个答案:

答案 0 :(得分:0)

我想我理解您的问题。此代码需要从Sheet1的单元格A1复制/迭代的次数,然后从Sheet2复制数据(单元格B2到数据集的末尾),然后多次粘贴到工作表3:

'assumes parameter is in cell A1
num_iterations = ThisWorkbook.Worksheets("Sheet1").Range("A1")

data_last_row = Worksheets("Sheet2").Cells.Find(What:="*", SearchDirection:=xlPrevious).Row

'Copy records from data tab, assuming data starts in B2
Worksheets("Sheet2").Range("B2:B" & data_last_row).Copy

For i = 1 To num_iterations
    output_last_row = Worksheets("Sheet3").Cells.Find(What:="*", SearchDirection:=xlPrevious).Row
    Worksheets("Sheet3").Cells(output_last_row + 1, 1).PasteSpecial 
Next i