我正在尝试编写一小段代码来创建一个新的工作表,并从第2行第1列到第4列的源工作表中的表中插入值。一旦它到达最后,我需要它循环到下一行并重新开始。Excel VBA - 循环到下一个可用的空白单元格
我遇到的问题是下面的代码循环回到新工作表的第1行,并且数据被覆盖。有没有简单的方法让我的循环开始在第一个空白行下?
[2
Sub SAX()
Dim wsSource As Excel.Worksheet, wsData As Excel.Worksheet
Dim r As Long, c As Long
Set wsData = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
wsData.Name = "Data"
Set wsSource = ThisWorkbook.Worksheets("Header")
Application.DisplayAlerts = False
r = 2
Do Until Len(Trim(wsSource.Cells(r, 1).Value)) = 0
For c = 1 To 4
wsData.Cells(c * 1, 1).Value = wsSource.Cells(r, c).Value
Next c
ThisWorkbook.Activate
r = r + 1
Loop
Application.DisplayAlerts = True
End Sub
提供输入数据和期望输出的一些截图可能会有所帮助这里... –
@DavidZemens我已经更新到与期望的输出加样的输入数据。 –