首页 文章

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

提问于
浏览
0

我差不多已经完成了一个大型宏观建筑,但我已经完成了绊脚石 . 我已经生成了一个具有预期值的工作表,我现在需要将其导出为XML格式 . 我只需要导出这个名为“输出”的特殊表格 . 我导出到文本时出现问题,因此必须创建Sub exportToXML以删除导出时生成的引号 . 这很好用 . 但是,当我导出时,我必须在输出文件上手动输入我想要的目录和文件名,这不是很好 . 目录可能会不时更改,也可能会更改文件名 .

子exportToXML(文件名作为字符串,WS作为工作表)对错误转到EndMacro:昏暗FNUM作为整数FNUM = FreeFile昏暗STARTROW只要,endRow只要昏暗startCol作为整数,endCol作为整数随着ws.UsedRange STARTROW = .Cells(1) .Row startCol = .Cells(1).Column endRow = .Cells(.Cells.Count).Row endCol = .Cells(.Cells.Count).Column End With

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 . 我不得不手动输入位置(我:)和文件名(测试)来获取任何输出文件 .

我是否可以不参考Directory和tradeid来确定文件将导出到的位置以及文件名是什么?这就是我引用Directory,tradeid,fmt的原因 .

1 回答

  • 1

    您可以 . 只需写:

    exportToXML Directory & "\" & tradeid & "\" & fmt, op

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

相关问题