如何创建用于从不同工作表复制数据的 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
我是 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