我有一个Excel(2010)工作簿。其中一个工作表包含大约800行XML标记。
它看起来像这样:
<?xml version="1.0" encoding="UTF-8" ?>
<Data>
<Entry>
<Name>John<Name>
<Age>58<Age>
</Entry>
<Entry>
<Name>Amy<Name>
<Age>29<Age>
</Entry>
</Data>
每个元素都在一个单独的行/单元格上。
A1 = <?xml version="1.0" encoding="UTF-8" ?>
A2 = <Data>
A3 = <Entry>
A4 = <Name>John<Name>
A5 = <Age>58<Age>
。 。
等等。
这些不是纯文本值 - 内容是通过不同表格中不同单元格的CONCATENATE生成的。
细胞A3的公式如下:
=CONCATENATE(XML!A3,XML!B3,XML!C3)
我想创建一个VBA宏,将此工作表的内容输出到XML文件或文本文件中。它已经格式化为XML文件,所以我只想保存内容。
我在网上找到的就是如何将工作表本身保存为XML,但是将所有数据转换为垃圾,因为它已经格式化,至少在外观上。如果这是有道理的。
任何建议都会受到赞赏,因为我没有与VBA合作过多。
提前致谢!
答案 0 :(得分:4)
Sub SaveAsXML()
Dim strFileName As String
strFileName = Application.GetSaveAsFilename(filefilter:="XML Files (*.xml),*xml")
ActiveSheet.SaveAs Filename:=strFileName, FileFormat:=xlTextPrinter, CreateBackup:=False
End Sub
FileFormat
必须是xlTextPrinter
,否则它会对字符串中的任何引号产生奇怪的效果。