上一篇文章,我分享了一个快速合并多个Excel工作表的方法,但是因为Excel表格的最大行数是1,048,576行,因此那个方法仅适用于合并后行数在最大行数以内的表格。
这一篇,我再分享一个方法,该方法可适用于合并后行数在最大行数以内的表格,但是电脑里需有Access软件,合并后的表格也是在Access中浏览,如果需要导出Excel,则需要删减行数至1,048,576行以内方可导出。
步骤一:准备Access数据库
打开Access数据库,按 Alt+F11 进入VBA编辑器。
新建模块( 插入 → 模块),粘贴以下代码:
Sub ImportAllExcelFiles()
Dim strFolder As String
Dim strFile As String
Dim strExcelTable As String
Dim strAccessTable As String
Dim blnHasHeaders As Boolean
' 设置参数
strFolder = "C:\YourFolderPath\" ' 修改为你的文件夹路径
strExcelTable = "Sheet1$" ' Excel工作表名(如Sheet1$)
strAccessTable = "ConsolidatedTable" ' Access目标表名
blnHasHeaders = True ' Excel是否有标题行
' 遍历文件夹中的Excel文件
strFile = Dir(strFolder & "*.xlsx")
Do While Len(strFile) > 0
' 使用TransferSpreadsheet方法导入数据
DoCmd.TransferSpreadsheet _
TransferType:=acImport, _
SpreadsheetType:=acSpreadsheetTypeExcel12Xml, _
TableName:=strAccessTable, _
FileName:=strFolder & strFile, _
HasFieldNames:=blnHasHeaders, _
Range:=strExcelTable
strFile = Dir()
Loop
MsgBox "导入完成!"
End Sub
步骤二:修改代码参数将 strFolder 改为你的Excel文件夹路径(以反斜杠 \ 结尾)。检查 strExcelTable 是否与Excel中的工作表名称匹配(例如 Sheet1$)。
步骤三:执行代码返回Access,按 Alt+F8 打开宏窗口。运行 ImportAllExcelFiles 宏,所有Excel文件的数据将自动追加到目标表。
本文暂时没有评论,来添加一个吧(●'◡'●)