簡體   English   中英

如何在Excel VBA Internet Explorer中使用通配符

[英]How to use wildcard in excel vba internet explorer

您能告訴我如何在Excel VBA Internet Explorer中使用通配符嗎?

id="btn_edit_card_1NLQNQD0D93O"

每次那個數字都不一樣。 如何通過單擊該按鈕

 document.getElementById

代碼中沒有類

 <a id="btn_edit_card_1NLQNQD0D93O" href="/trades/bejelentes_egyszerusitett/1NLQNQD0D93O">Editing basic data</a>

正如@Nathan_Sav所建議的那樣,我可能非常明智地補充道,您將不得不解決集合的問題。 例如,循環遍歷所有“ a”標記,直到找到一個名稱為“ btn_edit_card_”的標記。 除非有多個帶有該短語的“ a”標簽,否則這將起作用。

    Set els = ie.Document.getElementsByTagName("a")
    For Each el In els
         If el.ID Like "btn_edit_card*" 
            el.click
            Exit For
'           Debug.Print el.ID, el.Name
         End If  
    Next el

如果您的IE版本是9或更高版本,則可以使用HTMLDocument類的querySelectorAll方法。

這使用CSS選擇器啟用按元素屬性過濾的元素。 在您的情況下,您正在尋找一個idbtn_edit_card開頭a元素。 選擇器為:

a[^=btn_edit_card]

^=意思是從開頭

請參閱下面的示例代碼,該代碼從此頁面提取注釋-它們都是問題下方表格中的tr元素,它們的所有id均為comment-123456 ,其中的數字可以隨注釋的不同而改變(因為它們是唯一存儲在數據庫中的)等等):

Option Explicit

Sub GetElementByWildcard()

    Dim objIe As InternetExplorer
    Dim objDoc As HTMLDocument
    Dim objElements As IHTMLDOMChildrenCollection
    Dim objElement As Object
    Dim lngCounter As Long

    On Error GoTo ExitFunction

    'get page content
    Set objIe = New InternetExplorer
    objIe.Visible = False
    objIe.navigate "http://stackoverflow.com/questions/42225761/how-to-use-wildcard-in-excel-vba-internet-explorer"
    Do While objIe.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop

    'get document
    Set objDoc = objIe.document

    'get any <tr> with an id starting with comment-
    Set objElements = objDoc.querySelectorAll("tr[id^=comment-]")

    'iterate output
    lngCounter = 0
    While lngCounter < objElements.Length
        Set objElement = objElements.Item(lngCounter)
        Debug.Print objElement.innerText
        lngCounter = lngCounter + 1
    Wend

ExitFunction:
    If Err.Number <> 0 Then
        Debug.Print Err.Description
    End If

    objIe.Quit
    Set objDoc = Nothing
    Set objIe = Nothing


End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM