Ecexl中的VBA导出表内的数据到XML

Ecexl中的VBA导出表内的数据到XML

作用:

为了方便策划填表,导表,我需要做一个功能就是在Ecexl中添加一个按钮 实现 自动导表功能。

实现方法:

主要使用 DOMDocument 模型,(需要添加 XML控件:工具-> 引用->选择Microsoft XML,V3.0)实现XML,遍历表格让每一行形成一条XML数据。把第一行当做属性名称,形成特定格式。

代码如下:
Option Explicit '语句在模块级别中使用,强制显式声明模块中的所有变量。
Sub Main()
    Dim xmlName As String 'XML名称
    Dim xmlDoc As DOMDocument'数据总表
    Dim xmlPI As IXMLDOMProcessingInstruction'数据总表属性获得这些参数值
    Dim xmlRoot As IXMLDOMElement'总表数据
    Dim xmlVoucher As IXMLDOMElement'每行数据
    Dim I As Long
    Dim M As Long
    
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是VBA代码实现: ``` Sub ExportExcelToAccess() '定义变量 Dim strFilePath As String Dim strFileName As String Dim strAccessDB As String Dim objAccess As Object Dim objExcel As Object Dim objWorkbook As Object Dim objWorksheet As Object Dim strSQL As String '选择Excel文件 With Application.FileDialog(msoFileDialogFilePicker) .Title = "请选择Excel文件" .Filters.Clear .Filters.Add "Excel文件", "*.xls;*.xlsx" .AllowMultiSelect = False If .Show = -1 Then strFilePath = Left(.SelectedItems(1), InStrRev(.SelectedItems(1), "\")) strFileName = Mid(.SelectedItems(1), InStrRev(.SelectedItems(1), "\") + 1) Else Exit Sub End If End With '连接Access数据库 strAccessDB = strFilePath & "Database.accdb" Set objAccess = CreateObject("Access.Application") objAccess.Visible = False objAccess.OpenCurrentDatabase strAccessDB '打开Excel文件 Set objExcel = CreateObject("Excel.Application") objExcel.Visible = False Set objWorkbook = objExcel.Workbooks.Open(strFilePath & strFileName) '导出数据到Access For Each objWorksheet In objWorkbook.Worksheets strSQL = "INSERT INTO " & objWorksheet.Name & " SELECT * FROM [Excel 12.0 Xml;HDR=YES;DATABASE=" & strFilePath & strFileName & "]." & objWorksheet.Name & "$" objAccess.CurrentDb.Execute strSQL Next '关闭Excel和Access objWorkbook.Close objExcel.Quit objAccess.Quit '释放对象 Set objWorksheet = Nothing Set objWorkbook = Nothing Set objExcel = Nothing Set objAccess = Nothing End Sub ``` 使用方法: 1. 将上述代码复制到VBA编辑器; 2. 修改以下代码数据库名称和表格名称: ``` strAccessDB = strFilePath & "Database.accdb" strSQL = "INSERT INTO " & objWorksheet.Name & " SELECT * FROM [Excel 12.0 Xml;HDR=YES;DATABASE=" & strFilePath & strFileName & "]." & objWorksheet.Name & "$" ``` 3. 运行代码,在弹出的文件选择对话框选择要导出的Excel文件; 4. 程序将把Excel文件的所有工作表数据导入到同名的Access表,并保存在与Excel文件相同的目录下的Database.accdb

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值