VBA读取其他Excel内容

本文介绍使用Microsoft Access Database Engine通过VBA从Excel读取数据的方法。包括安装AccessDatabaseEngine及编写VBA代码实现数据读取的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VBA读取其他Excel内容


采用Microsoft于2020/8/11新出的 AccessDataBaseEngineMicrosoft Access 2016 数据库引擎可再发行程序包)在VBA中读取Excel内容。

AccessDataBaseEngine安装

如何选择安装32位或64位AccessDataBaseEngine?打开Excel,点击文件 > 账户 > 关于Excel 查看。下载AccessDataBaseEngine并安装。AccessDataBaseEngine资源、及详细安装信息参见Microsoft官网

Excel内容读取

  • 打开Excel保存格式选择为xlsmAlt + F11打开VBA,新建模块(Module)。
  • 点击工具 > 插入 > 引用找到Microsoft ActiveX Data Objects 6.1,目的使代码编写时有题词功能,当然CreateObject方法也可以使用。
Public Sub ExcelReader
    Dim cnn As New ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim path As String
    Dim row As Integer
    
    '被读取的Excel文件路径
    path = Environ("userprofile") & "\Desktop\InputExcel.xlsx"
    cnn.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & path
    
    '可在"$"后添加具体读取范围
    '例如"SELECT * FROM [Sheet1$A1:Y180]"
    Set rst = cnn.Execute("SELECT * FROM [Sheet1$]")
    
    '显示列名(读取范围的第一行)
    row = 1
    For i = 1 To rst.Fields.Count    
    	Cells(row, i) = rst(i - 1).Name
    
    Next
    
    '显示所有数据
    While Not rst.EOF
     	row = row + 1
     	
       	For i = 1 To rst.Fields.Count	    
   		Cells(row, i) = rst(i - 1)
    
   	 Next
    
    	rst.MoveNext
    Wend
    
    rst.Close
    cnn.Close
End Sub

最后回到刚保存的xlsm文件调用VBA,点击开发工具 > > 选择ExcelReader > 执行(没有开发工具选项可在文件 > 选项 > 自定义功能区 > 勾选开发工具 > 确定)。或者插入按钮绑定事件,点击即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值