如何用VBA把源文件的从第二个表格开始到最后一个表格的第二行的数据复制到目标文件中的第二个表格中,并把源文件第三行的数据复制到目标文件的第三个表格中,并以此类推,直到读完源文件的最后一个表格的最后一行
时间: 2024-03-05 14:55:09 浏览: 122
您好,以下是使用VBA复制源文件的数据到目标文件中的代码:
```VBA
Sub copyData()
Dim srcWB As Workbook
Dim destWB As Workbook
Dim srcWS As Worksheet
Dim destWS As Worksheet
Dim srcLastRow As Long
Dim srcLastCol As Long
Dim destLastRow As Long
Dim destLastCol As Long
Dim i As Long
Dim j As Long
Dim k As Long
'打开源文件和目标文件
Set srcWB = Workbooks.Open("源文件路径")
Set destWB = Workbooks.Open("目标文件路径")
'循环遍历源文件中的所有工作表
For Each srcWS In srcWB.Worksheets
If srcWS.Index > 1 Then '从第二个表格开始
'获取源文件工作表最后一行和最后一列
srcLastRow = srcWS.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
srcLastCol = srcWS.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'获取目标文件工作表最后一行和最后一列
Set destWS = destWB.Worksheets(srcWS.Index - 1) '目标文件中的工作表索引与源文件中的工作表索引相差1
destLastRow = destWS.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
destLastCol = destWS.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
'循环复制每一行的数据
For i = 2 To srcLastRow
'复制数据到目标文件中的对应工作表和行
destWS.Cells(destLastRow + 1, 1).Resize(1, srcLastCol).Value = srcWS.Cells(i, 1).Resize(1, srcLastCol).Value
destLastRow = destLastRow + 1
Next i
End If
Next srcWS
'关闭源文件和目标文件
srcWB.Close SaveChanges:=False
destWB.Close SaveChanges:=True
End Sub
```
上述代码会将源文件中从第二个表格开始到最后一个表格的第二行的数据复制到目标文件中的第二个表格中,并将源文件中第三行的数据复制到目标文件中的第三个表格中,以此类推,直到读完源文件的最后一个表格的最后一行。
阅读全文