写一个VBA代码,有两个excel表,如果表1的E列值不为空值,确认该行的行号返回给i,将表1的i行的A列数据返回给表2的A列最后一行的下一行
时间: 2024-02-12 20:06:02 浏览: 83
将excel表格按A列拆分为多个文件VBA代码
3星 · 编辑精心推荐
以下是VBA代码,可以实现你的要求:
```
Sub copyData()
Dim wb1 As Workbook, wb2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow1 As Long, lastRow2 As Long
Dim i As Long
'打开两个工作簿
Set wb1 = Workbooks.Open("Workbook1.xlsx")
Set wb2 = Workbooks.Open("Workbook2.xlsx")
'选择要操作的工作表
Set ws1 = wb1.Worksheets("Sheet1")
Set ws2 = wb2.Worksheets("Sheet1")
lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row '表1最后一行
lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row '表2最后一行
'循环表1的E列,找到非空值的行
For i = 1 To lastRow1
If ws1.Cells(i, "E").Value <> "" Then
'将该行的A列数据复制到表2的A列最后一行的下一行
ws2.Cells(lastRow2 + 1, "A").Value = ws1.Cells(i, "A").Value
lastRow2 = lastRow2 + 1 '更新表2最后一行的行号
End If
Next i
'关闭工作簿,释放内存
wb1.Close SaveChanges:=False
wb2.Close SaveChanges:=True
Set ws1 = Nothing
Set ws2 = Nothing
Set wb1 = Nothing
Set wb2 = Nothing
End Sub
```
请注意,此代码假定表1和表2的工作表名称都是“Sheet1”,如果不是,请按需要修改代码。此外,代码还假定表1和表2的数据都从第一行开始,如果不是,请将代码中的变量“i”和“lastRow2”初始化为正确的值。
阅读全文