下面我们就来看看在Excel VBA程序从其他Excel文件导入表到一个Excel文件。

下载Book4.xlsx,Book5.xlsx并将其添加到 “C:\测试\”

现状:

Import Sheets using Excel VBA

添加以下代码行到命令按钮:

1.首先,我们声明类型字符串,一个工作表对象的两个变量和Integer类型的一个变量。

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

2.关闭屏幕更新显示警报。

Application.ScreenUpdating = False

Application.DisplayAlerts = False

3.初始化变量目录。我们用Dir函数查找第.xl?文件存储在这个目录下。

directory = "c:\test\"

fileName = Dir(directory & ".xl??")

注:(?)Dir函数支持使用多个字符(*)和单字符的通配符搜索所有不同类型的Excel文件。

  1. fileName变量现在拥有在目录中找到第一个Excel文件的名称。添加一个do while循环。

Do While fileName <> ""

Loop

添加以下代码行(在图5,图6,7和8)到环路。

5,还有就是从关闭Excel文件复制工作表没有简单的方法。

因此,我们打开Excel文件。

Workbooks.Open (directory & fileName)

6.导入从Excel文件到进口sheet.xlsm床单。

For Each sheet In Workbooks(fileName).Worksheets

total = Workbooks("import-sheets.xlsm").Worksheets.count

Workbooks(fileName).Worksheets(sheet.Name).Copy _

after:=Workbooks("import-sheets.xlsm").Worksheets(total)

Next sheet

说明:总变量保持跟踪进口sheet.xlsm的工作表的总数。我们使用工作表对象的复制方法将其进口sheets.xlsm的最后一个工作表后复制每个工作表并粘贴。

7.关闭Excel文件。

Workbooks(fileName).Close
  1. Dir函数是一个特殊的功能。要获取其他Excel文件,你可以不带参数再次使用Dir函数。

fileName = Dir()

注:当没有更多的文件名称匹配,Dir函数返回一个零长度字符串(“”)。其结果是,Excel的VBA将离开do while循环。

9.开启屏幕更新,并再次显示(循环外)的警报。

Application.ScreenUpdating = True

Application.DisplayAlerts = True

10.测试程序。

结果:

Import Sheets Result