Привет! Недавно я обнаружил Excel VBA и использую его для изучения немецкого языка.
У меня есть список немецких слов, но нет значения / части речи, примеры предложений и т. Д. c.
Я написал макрос для go на веб-сайте (https://dictionary.cambridge.org/dictionary/german-english/) и получил html данные.
Однако для некоторых слов примеры предложений не являются предоставлено (отсюда html, не возвращающее значения и ошибка 91).
Я сослался на другие посты по этому поводу и добавил If Not HTMLDo c .getElementsByClassName () Is Nothing Then заявления, но не повезло пока что.
Не могли бы вы сказать мне, как написать код, так что если нет значения html, макрос переходит и go к следующему слову? (слово задается целым числом, соответствующим номеру ячейки в листе Excel)
Dim XMLReq As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
Dim i As Integer
Dim strURL As String
For i = 2 To 3493
strURL = "https://dictionary.cambridge.org/dictionary/german-english/" & Range("A" & i)
XMLReq.Open "Get", strURL, False
XMLReq.send
If XMLReq.Status <> 200 Then
MsgBox "Error."
Exit Sub
End If
HTMLDoc.body.innerHTML = XMLReq.responseText
Set XMLReq = Nothing
'Part
If IsObject(HTMLDoc.getElementsByClassName("pos dpos")) Then
Range("B" & i) = HTMLDoc.getElementsByClassName("pos dpos")(0).innerText
End If
'Meaning
If IsObject(HTMLDoc.getElementsByClassName("ddef_h")) Then
Range("C" & i) = HTMLDoc.getElementsByClassName("ddef_h")(0).innerText
End If
'ExampleGer
If Not HTMLDoc.getElementsByClassName("eg deg") Is Nothing Then
i = i + 1
Else
Range("D" & i) = HTMLDoc.getElementsByClassName("eg deg")(0).innerText
End If
'ExampleEng
If Not HTMLDoc.getElementsByClassName("trans dtrans hdb") Is Nothing Then
i = i + 1
Else
Range("E" & i) = HTMLDoc.getElementsByClassName("trans dtrans hdb")(0).innerText
End If
Next i
End Sub