将Excel工作表的内容复制到文本或XML文件

时间:2013-09-04 21:19:41

标签: xml excel vba excel-vba

我有一个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合作过多。

提前致谢!

1 个答案:

答案 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,否则它会对字符串中的任何引号产生奇怪的效果。