2016-09-30 129 views
1

我想從網站souq獲取數據。Excel VBA忽略錯誤

代碼我用得到的數據是:

des = Trim(Doc.getElementById("description-full").innerText) 

,但在現場,而不是完整的描述可有時只是簡短的描述,那就是

des = Trim(Doc.getElementById("description-short").innerText) 

我想「短」的產品說明只有當「完整描述」不可用時

回答

2
Dim descr = "" 
If Not Doc.getElementbyId("description-full") Is Nothing Then 
    descr = Doc.getElementbyId("description-full").innerText 
Else 
    ' This assumes that html element with id `description-short` is always present on page 
    descr = Doc.getElementbyId("description-short").innerText 
End If 
+1

你沒有在這方面處理錯誤,順便說一句,我是初學者,我從你那裏學到了「Nothing」,這對我的其他VBA很有幫助。 –

+0

作爲初學者,您應該瞭解使用'On Error Resume Next'處理錯誤不是最好的方法。嘗試檢查頁面上是否存在該元素。這個想法是:元素是否存在?如果是,請在其上調用'innerText'。如果不是,那就不要做任何事情。因爲我們怎樣才能做到根本不存在的元素呢? ......當然我們不能。 – dee

+0

再次感謝, 當我說我從你身上學到「Nothing」,那意味着我從你身上學到了「Nothing」TAG :) –

2

您可以嘗試類似於:

On Error Resume Next 
des = Trim(Doc.getElementById("description-full").innerText) 

If des = "" Then 
    des = Trim(Doc.getElementById("description-short").innerText) 
End if 
+1

是不是與OP所要求的相反?這會將描述完整地存儲在'des'中,然後如果內容不爲空,它將用簡寫覆蓋它。 應該用'='替換'<>'嗎? – Pav

+0

好的,現在編輯。謝謝。 – Jordan