繁体   English   中英

Excel VBA 替换字符串中的问号

[英]Excel VBA replacing question mark in a string

我有一个字符串ShrtDesc如下:

? HYPOALLERGENIdisorders. SET OF 3. 
? SAVE MONEY & 

我正在尝试以下操作:

ShrtDesc = Replace(ShrtDesc, "?", "")
ShrtDesc = Replace(ShrtDesc, "~?", "")
ShrtDesc = Replace(ShrtDesc, Chr(63), "")
ShrtDesc = Replace(ShrtDesc, ChrW(63), "")

但我无法替换问号。 我不确定还能尝试什么。

编辑:我通过抓取亚马逊页面得到它。

Debug.Print Asc(Left(ShrtDesc, 1))
63

Debug.Print VarType(ShrtDesc)
 8 

编辑2:我正在使用以下代码:

Sub testSub()
    Dim pKey As String
    pKey = "B07R212XKH"
    Dim AmazonUrl As String
    AmazonUrl = "https://www.amazon.com/s?k=" & Trim(pKey)
    
    Dim Msxml, Msxml2, Doc, Doc2 As Object
    Set Msxml = CreateObject("Microsoft.xmlhttp")
    Set Doc = CreateObject("htmlfile")
    Set Msxml2 = CreateObject("Microsoft.xmlhttp")
    Set Doc2 = CreateObject("htmlfile")
    Msxml.Open "GET", AmazonUrl, False
    Msxml.Send ""
    Doc.body.innerhtml = Msxml.ResponseText
    
    Dim AllProducts, Product As Object
    Dim ProductUrl, ShrtDesc As String
    
    Set AllProducts = Doc.getelementsbytagname("h2")
    For Each Product In AllProducts
        ProductUrl = Product.getelementsbytagname("a").Item(0).href
        ProductUrl = Replace(ProductUrl, "about:/", "https://www.amazon.com/")
        
        Msxml2.Open "GET", ProductUrl, False
        Msxml2.Send ""
        Doc2.body.innerhtml = Msxml2.ResponseText
        ShrtDesc = Doc2.getelementbyid("featurebullets_feature_div").innertext
        ShrtDesc = Replace(ShrtDesc, "?", "")
        Next
End Sub

对,正如@ScottHoltzman 所说; 问号可以是 Excel 未正确显示的文本的占位符。 因此,让我们按原样查看原文

在此处输入图像描述

对了,这确实不是问号,而是黑心套装 该字符的 unicode 将是:“U+2665”,因此您现在可以使用:

ShrtDesc = Replace(ShrtDesc, ChrW(&H2665), "")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM