Если ваша версия IE 9 или выше вы можете использовать querySelectorAll
метод HTMLDocument
класса.
Для этого используется CSS selectors, чтобы обеспечить фильтрацию элементов по их атрибутам. В вашем случае вы ищете a
элементы с id
, начиная с btn_edit_card
. Селектор для этого будет:
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
Возможно, этот 'document.getElementById' является частью коллекции. Попробуйте передать коллекцию и попытаться извлечь из нее первый элемент. – Vityata
@Vityata Я не понимаю, я хочу нажать эту кнопку через objIE.document.getElementById ("btn_edit_card _ ????????????"). Нажмите, но я понятия не имею, как использовать подстановочный знак для щелчка это – Oli
, вы можете использовать '.getElementsByTagName (" a ")', а затем итерировать эту коллекцию до тех пор, пока она не станет похожей на btn_edit_card. * Посмотрите на соответствующие библиотеки, это поможет https://msdn.microsoft.com/en- us/library/ms970672.aspx и https://msdn.microsoft.com/en-us/library/aa703928(v=vs.85).aspx, и этот https://msdn.microsoft.com/en-us /library/ms536439(v=vs.85).aspx –