当前位置: 首页 > 知识库问答 >
问题:

VBA将Excel导出为XML格式并保存到特定目录

燕英奕
2023-03-14

我几乎完成了一个大型宏的构建,但我遇到了最后的绊脚石。我制作了一个带有期望值的工作表,现在需要将其导出为XML格式。我只需要导出这个名为“Output”的特定工作表。当我导出为文本时存在问题,因此必须创建一个Sub exportToXML以删除导出时产生的一些引号。这工作正常。但是当我导出时,我必须手动输入我想要的目录和文件名在输出文件上,这不好。目录可能会不时更改,文件名也会更改。

错误转到EndMacro时的Sub exportToXML(文件名为字符串,ws为工作表):Dim FNum为整数FNum=FreeFile Dim startRow为长,endRow为长Dim startCol为整数,endCol为带ws的整数。UsedRange startRow=。单元格(1)。行startCol=。单元格(1)。列结束行=。单元格(.Cells.Count)。行结束列=。单元格(.Cells.Count)。柱端带有

Open fileNAme For Output Access Write As #FNum
Dim rowNdx As Long, colNdx As Integer
Dim wholeLine As String, cellValue As String
For rowNdx = startRow To endRow
    wholeLine = ""
    For colNdx = startCol To endCol
        If ws.Cells(rowNdx, colNdx).Value = "" Then
            cellValue = ""
        Else
            cellValue = ws.Cells(rowNdx, colNdx).Value
            If removeCommaNums Then
                If IsNumeric(cellValue) Then
                    cellValue = Replace(cellValue, ",", "")
                End If
            End If
        End If
        wholeLine = wholeLine & cellValue & sep
    Next colNdx
    wholeLine = Left(wholeLine, Len(wholeLine) - Len(sep))
    Print #FNum, wholeLine; " "
Next rowNdx
EndMacro:
On Error GoTo 0
Close #FNum
End Sub

Sub SaveAs()
fmt As String, Directory As String, tradeid As String
fmt = ".txt"
tradeid = Worksheets("XML Instruction").Range("B16").Value
Directory = Worksheets("EUC").Range("C7").Value
Dim op As Worksheet
Set op = Sheets("Output")

exportToXML "I:\test.txt", op

End Sub

SavAs Sub的最后一部分是我的问题所在:-exportToXML“I:\test.txt”,op。我必须手动输入位置(I:)和文件名(test)才能获得任何输出文件

我可以不引用目录吗

共有1个答案

戎桐
2023-03-14

你可以的。简单地写:

exportToXML目录

确保目录是有效的目录,并且tradeid没有不允许的特殊字符。

 类似资料:
  • 我的程序(C#.NET4.5)必须能够生成一些可以加载到Excel中的报告。我选择将报表导出为。csv格式,因为这是导出为excel理解的格式的最简单的方法。并且它不要求Excel安装在运行我的程序的机器上。 我的问题是导出日期。

  • 我遵循这个答案(将电子表格的行转换为单独的XML文件),但是我收到一个错误,告诉我没有定义对象。我很抱歉,因为我是VBA新手。 我的表格遵循代码中显示的顺序,例如。 第1列{例如A}=文件名字符串 第677列{e.g.ZA}=XML文件第一行的字符串 第683列{e.g.ZG}=视频文件的标题{此列和以下所有列已经有了相应的标记(例如。 产生错误的代码是: 突出显示的错误是“doc.getElem

  • 问题内容: 我正在尝试使用VBA将数据表从excel导入SQL Server 2012。 最好在UDF的帮助下。 excel表看起来像这样。 (我将数字放在单元格中以指定其位置。例如11 =第1行,第1列) 数据库表看起来像这样。 (这不包括“主键”列,该列可以是id和year的组合,也可以是a ) 我知道如何导入特定的列,例如,我可以运行以下代码: 这对于单个列非常有用,但是我将如何使其适用于整

  • 问题内容: 我想通过单击表单中的按钮将查询结果导出到excel文件。 为此,我使用了这段代码,并且效果很好: 但是我的查询使用了两个参数 sdate 和 edate ,我不想访问询问我这些值,但是我希望用户在带有适当文本框的表单中输入它们。 所以我在DoCMD.OutputTo之前的代码中添加了此位 但不幸的是,它不起作用。在导出之前如何将参数放入查询中? 问题答案: 如果您想保持原始参数查询的完

  • 需求是要将 图示的表格 导出到excel中 并且展现形式和样式要一致 请问有什么方法实现吗, 下面时表格实现的代码

  • 在构建结束时,我在project-covere/target/site/jacoco-aggregate/jacoco.XML下有一个XML文件 我如何使用这个XML并将其导出到Jenkins中?我知道Jenkins中有一个支持Jacoco的插件,但我不确定如何使用这个XML报告而不是exec文件来报告Jenkins中的覆盖率。