【发布时间】:2016-10-19 20:49:07
【问题描述】:
我正在尝试编写一小段代码来创建一个新工作表并从源工作表中的表中插入值,从第 2 行第 1 列到第 4 列开始。一旦到达末尾,我需要它循环到下一行重新开始。
我遇到的问题是下面的代码循环回到新工作表的第 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 我已更新以添加具有所需输出的示例输入数据。