如何使用VBA从Excel文件中将&符号写入XML文件?

首先,在VBA方面,我是一个完全的新手,但不幸的是我遗弃了这个代码,我不得不面对这个问题。

应用程序所做的是将信息复制到Excel xlsm文件中,并将其粘贴到XML文件中以供进一步处理。

事情是,这一切都非常顺利,直到我打在Excel单元格之一,即:

我有一个单元“研发”,当我把它传递给XML文件,我得到以下错误:

Run-time error '91': Object variable or With block variable not set 

请记住,我与VBA完全垃圾。 我尝试改变单元格中的“R && D”,“R & D”但没有骰子的内容。

我相信细胞的价值来自这一行代码:

 oCell.Offset(, 0).Value 

但是我想要一些帮助,以便如何逃避&符号…

非常感谢提前,如果你需要更多的信息,让我知道。

你所寻找的是一种在string中创buildhtml实体的方法,这涉及到对任何特殊字符使用&和代码。 '&'是一个特殊的字符本身。

可能有代码在那里改变做到这一点,但同时在你的代码replace

 & 

 & 

你应该解决这个问题。

我为Access编写了下面的函数,但是它应该和Excel一起工作。

 Function CleanupStr(strXmlValue) As String 'description: Replace forbidden char. &'"<> by their Predefined General Entities 'author: Patrick Honorez - www.idevlop.com Dim sValue As String If IsNull(strXmlValue) Then CleanupStr = "" Else sValue = CStr(strXmlValue) sValue = Replace(sValue, "&", "&amp;") 'do ampersand first ! sValue = Replace(sValue, "'", "&apos;") sValue = Replace(sValue, """", "&quot;") sValue = Replace(sValue, "<", "&lt;") sValue = Replace(sValue, ">", "&gt;") CleanupStr = sValue End If End Function 

我在这里find了这两个辅助函数:

 Public Function HTMLToCharCodes(ByVal iString As String) As _ String With New MSXML2.DOMDocument30 .loadXML "<p>" & iString & "</p>" HTMLToCharCodes = _ .selectSingleNode("p").nodeTypedValue End With End Function 

 Public Function CharCodesToHTML(ByVal iString As String) As _ String Dim iXml As New MSXML2.DOMDocument30 With iXml.createTextNode(iString) CharCodesToHTML = .xml End With End Function