Excle使用VBA导出为XML格式

Private Sub ToXML()

    '定义所需类型
    Dim Filename As Variant
    Dim TDOpenTag As String
    Dim CellContents As String
    Dim Rng As Range
    Dim r As Long, c As Integer

    '定义保存名称和类型
    Filename = Application.GetSaveAsFilename( _
    InitialFileName:="ButtonTextList.xml", _
    fileFilter:="XML Files(*.xml), *.xml")
    If Filename = False Then Exit Sub

    '定义输出缩写
    Open Filename For Output As #1

    Print #1, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>"
    Print #1, "<BUFF模板表  xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">"

    '循环sheets
    For i = 1 To 1
        
        '设置单元格范围
        Set Rng = Worksheets(i).Range("A1:AN1000")
        
        For r = 2 To Rng.Rows.Count
            ' 判断Excel中下一行是否有数据
            If Rng.Cells(r, 1) = "" Then
                Exit For
            End If
            Print #1, "    <" & Rng.Cells(r, 1) & ">"
            For c = 2 To Rng.Columns.Count
                '判断Excel中当前行的下一列是否有数据
                If Rng.Cells(r, c) = "" Then
                    Rng.Cells(r, c) = 0
                End If
                Print #1, "        <" & Rng.Cells(1, c) & ">";
                If IsDate(Rng.Cells(r, c)) Then
                    Print #1, Format(Rng.Cells(r, c), "yyyy-mm-dd");
                Else
                    Print #1, Rng.Cells(r, c).Text;
                End If
                Print #1, "</" & Rng.Cells(1, c) & ">"
            Next c
            Print #1, "    </" & Rng.Cells(r, 1) & ">"
        Next r
    
    Next i
    
    Print #1, "</BUFF模板表>"
    
    '关闭
    Close #1

    '保存
    MsgBox Rng.Rows.Count - 1 & " records were exported to " & Filename
    
End Sub


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值