首先,当谈到VBA时,我是一个完全新手,但不幸的是我被抛弃了这个代码,我必须处理它......
应用程序的作用是将信息复制到Excel xlsm文件中,并将其粘贴到XML文件中以供进一步处理。
问题是,直到我在其中一个Excel单元格中点击&符号,它才变得非常顺利,即:
我有一个有“R& D”的单元格,当我将它传递给XML文件时,我收到以下错误:
Run-time error '91':
Object variable or With block variable not set
请记住,我已经完成了VBA的垃圾。我尝试更改单元格中的内容为“R&& D”,“R &
D”,但没有骰子。
我相信单元格的价值来自这行代码:
oCell.Offset(, 0).Value
但是我希望能帮助你逃脱&符号......
非常感谢,如果您需要更多信息,请告诉我。
答案 0 :(得分:6)
我为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
答案 1 :(得分:1)
您正在寻找的是在字符串中创建html实体的方法,这涉及使用&
和任何特殊字符的代码。 '&安培;'是一个特殊的字符本身。
可能有代码需要更改才能执行此操作,但同时在代码中替换
&
与
&
你应该解决这个特殊问题。
答案 2 :(得分:0)
我发现here这两个辅助函数:
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