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

VBA Export Excel to XML format and save to specific directory

我几乎完成了一个大型Macro的制作,但是我遇到了最终的绊脚石。我已经制作了具有期望值的工作表,现在需要将其导出为XML格式。我只需要导出这个称为"输出"的特定工作表。当我导出到文本时出现问题,因此必须创建Sub exportToXML来删除在导出时产生的引号。这很好。但是,当我导出时,我必须手动输入目录和文件名,但我希望输出文件不好。目录可能会不时更改,文件名也会更改。

子exportToXML(fileNAme作为字符串,ws作为工作表)
出现错误时转到EndMacro:
FNum作为整数
FNum = FreeFile
Dim startRow As Long,endRow As Long
昏暗startCol作为整数,endCol作为整数
与ws.UsedRange
startRow = .Cells(1)。行
startCol = .Cells(1)。列
endRow = .Cells(.Cells.Count).Row
endCol = .Cells(.Cells.Count).Column
结束于

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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 :)和文件名(测试)以获取任何输出文件。

例如,我是否可以不参考Directory&Tradeid来确定文件导出到的位置以及文件名是什么?
这就是为什么我引用了Directory,tradeid,fmt。


您可以。 只需写:

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

确保目录是有效目录,并且Tradeid不允许使用特殊字符。