簡體   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