【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

(0)

相关推荐