4

首先,当谈到 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

但我想要一些关于如何逃脱&符号的帮助......

非常感谢,如果您需要更多信息,请告诉我。

4

3 回答 3

9

我为 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 
于 2012-12-18T15:26:04.220 回答
1

您正在寻找的是一种在字符串中创建 html 实体的方法,这涉及使用&任何特殊字符的代码。'&' 本身就是一个特殊的字符。

可能有代码可以更改以执行此操作,但同时在您的代码中替换

&

&amp;

你应该解决那个特定的问题。

于 2012-12-17T18:19:40.947 回答
0

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

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
于 2013-10-28T08:10:46.663 回答