2016-05-31 79 views
0

我不斷收到「運行時錯誤‘91’:對象變量或帶塊變量未設置」在下面的代碼行If document.getElementsByClassName("prod-summ")(tdNum).getElementById("no-piece").FirstChild.NodeValue = ItemNbr ThenVBA - 對象變量或未設置塊變量。 Variable作爲整數

Dim tdNum As Integer 
Dim ItemNbr As String 

    'More code here 

tdNum = 0 
    If document.getElementsByClassName("prod-summ")(tdNum).getElementById("no-piece").FirstChild.NodeValue = ItemNbr Then 
     Cells(cell, 2).Value = document.getElementsByClassName("prod-summ")(tdNum).getElementById("col-action").getElementsByTagName("span")(0).innerText 
    Else 
     tdNum = tdNum + 1 
    End If 

我四處搜尋,但可似乎找不到解決方案,我的代碼是有意義的。

+0

作爲解決這些問題的一般方法,請在該行上設置斷點。然後使用立即窗口調查問題在方法/屬性鏈中的位置(例如,「文檔」設置爲對象?是getElementsByClassName(返回任何東西?) – aucuparia

+0

您可以有兩個像這樣的參數嗎?'getElementsByClassName (「prod-summ」)(tdNum)' – Tim

+0

''(「prod-summ」)'是ClassName,'(tdNum)'是一個變量,因此第一個實例是'getElementsByClassName(「 prod-summ「)(0)',它將一個元素的第一個實例作爲目標」prod-summ「 – ActuallyJane

回答

0

我解決了我的問題。首先,有一個錯字。而不是getElementsByClassName("prod-summ")它應該是getElementsByClassName("prod-somm")

我猜對象層次不喜歡有getElementById除了document東西后,所以通過更換我的代碼如下:

For tdNum = 0 To 10 

    If document.getElementsByClassName("prod-somm-texte")(tdNum).FirstChild.FirstChild.NodeValue = ItemNbr Then 
     Cells(cell, 2).Value = document.getElementsByClassName("prix")(tdNum).FirstChild.innerText 
     Exit For 
    Else 
     Debug.Print document.getElementsByClassName("prod-somm-texte")(tdNum).FirstChild.FirstChild.NodeValue 
    End If 

Next tdNum 

這似乎解決這個問題。

謝謝大家的意見,但真的很有幫助!

相關問題