编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

分享快速导入多个Excel工作表至Access数据库的方法

wxchong 2025-03-20 20:17:24 开源技术 47 ℃ 0 评论

上一篇文章,我分享了一个快速合并多个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文件的数据将自动追加到目标表。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表