如何创建用于从不同工作表复制数据的 For 循环

How to Create a For Loop for Copying Data From Different Worksheets

我是 Visual Basic 的新手,我正在尝试执行 For 循环来为我的数据创建 Date-Task 组合,但我被卡住了。所以我有两个范围如下,日期和任务。我需要将这些范围的元素复制到不同的 sheet 作为 Date 的一个元素,然后是 Tasks 中的所有元素。我正在为此创建一个 For 循环,它只是不断地在相同的单元格中改组正确的数据。它应该像单元格 B2 是 05-07-2021 而单元格 C2 是小费。然后单元格 B3 是 05-07-2021,单元格 C3 是携带。那么单元格 B4 是 05-07-2021,单元格 C4 是驾驶。然后单元格 B5 是 06-07-2021,单元格 C5 是小费。等等。我怎样才能做到这一点?我在这里粘贴了我的示例代码。

日期 任务
2021 年 5 月 7 日 小费
2021 年 6 月 7 日 携带
2021 年 7 月 7 日 开车
2021 年 7 月 8 日
2021/09/07
Sub CreateIdentifier()

Dim dateRange As Range
Dim taskRange As Range
Dim LastRow1 As Integer
Dim LastRow2 As Integer
    
LastRow1 = Sheet6.Cells(Rows.Count, 1).End(xlUp).Row
LastRow2 = Sheet5.Cells(Rows.Count, 4).End(xlUp).Row

Set taskRange = Sheet5.Range(Sheet5.Cells(2, 4), Sheet5.Cells(LastRow2, 4))
Set dateRange = Sheet6.Range(Sheet6.Cells(2, 1), Sheet6.Cells(LastRow1, 1))


Dim datecnt As Range
Dim taskcnt As Range

With Sheet3
For Each datecnt In dateRange
    For Each taskcnt In taskRange
        .Range("B2") = datecnt.Value
        .Range("C2") = taskcnt.Value
    Next taskcnt
Next datecnt
    
End Sub

增加一个变量以在每次迭代时切换行

Dim r as Long



r = 2
With Sheet3
    For Each datecnt In dateRange
        For Each taskcnt In taskRange
            .Range("B" & r).Value = datecnt.Value
            .Range("C" & r).Value = taskcnt.Value
            r = r + 1
        Next taskcnt
    Next datecnt
End with