如何使用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, "&", "&") 'do ampersand first ! sValue = Replace(sValue, "'", "'") sValue = Replace(sValue, """", """) sValue = Replace(sValue, "<", "<") sValue = Replace(sValue, ">", ">") 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