【VBA代码】批量读取含有多个工作表的工作簿中的内容
在某一期视频中我跟大家介绍了如何使用macro来批量读取多个工作簿中的数据,有同学问我如果工作簿里面有多个工作表的话也可以读取吗。
那么下面就是针对多个工作表读取数据的VBA代码,可以将多个工作表的数据读取到含有代码的这张表里。条件是含有代码的这个工作簿也需要有完全相同的几个工作表,否则会报错的。
Sub 批量读取含有多个工作表的工作簿中的内容()
Dim WKB1 As Workbook
Dim WKB2 As Workbook
Dim Sht As Worksheet
Dim Path As String
Dim NameWKB As String
Dim i As Integer
Application.ScreenUpdating = False '关闭屏幕闪烁
Path = 'C:\Users\Administrator\Desktop\test\' '存放要被读取的表格
NameWKB = Dir(Path & '*.xlsx')
Set WKB1 = ThisWorkbook
Do Until NameWKB = '' '循环文件夹中的工作簿
Set WKB2 = Workbooks.Open(Path & NameWKB) '打开工作簿并赋值
For Each Sht In WKB2.Sheets '循环刚打开的工作簿中的所有工作表
Sht.Range('a1').CurrentRegion.Copy '相当于选中a1单元格并按ctrl+a组合键全选,并复制
With ThisWorkbook.Sheets(Sht.Name)
i = .Range('a1000000').End(xlUp).Row + 1
.Range('a' & i).PasteSpecial
.Rows(i).Delete
End With
Next
WKB2.Close False
NameWKB = Dir
Loop
Application.ScreenUpdating = True
End Sub