2017-09-14 149 views
0

爲什麼這個工作?如何在VBA中分配變量?

echipe = meci2.getElementsByClassName("col-md-3 equipo ng-binding").Item(0).innerText 

但是這將提高運行時錯誤438:

echipe = meci2.getElementsByClassName("col-md-3 equipo ng-binding") 
echipa1 = echipe.Item(0).innerText 
+1

什麼數據類型是'meci2.getElementsByClassName(「COL-MD-3 EQUIPO NG結合」) '?如果它是一個對象,你還沒有說'Set echipe = meci2.getElementsByClassName(「col-md-3 equipo ng-binding」)'。什麼數據類型是'echipe'? (將一個對象的引用賦值給一個變量不同於將一個值賦值給一個變量。) – YowE3K

+0

@ YowE3K它是一個對象,你解決了我的困境,謝謝。 – Rius2

+0

@ YowE3K請發表一個答案,以便我可以接受 – Rius2

回答

1

在聲明

echipe = meci2.getElementsByClassName("col-md-3 equipo ng-binding").Item(0).innerText 

似乎已經聲明echipe是一個String,這是對一個String變量賦值有效的語法。 (或許你沒有申報是什麼類型的echipe,因此它默認爲一個Variant,因此分配String值迫使它是Variant/String。)


然而,在聲明中

echipe = meci2.getElementsByClassName("col-md-3 equipo ng-binding") 

看來您已宣佈echipe是某種對象,或者甚至可能是非常通用的類型Object。爲給一個變量分配給某個對象的引用正確的語法爲Set variable = object所以,你的情況,你需要

Set echipe = meci2.getElementsByClassName("col-md-3 equipo ng-binding") 
0

抱歉,但它一直以來我這樣做很長一段時間... 我可能是錯的,但我認爲這將是正確的:

echipe = meci2.getElementsByClassName("col-md-3 equipo ng-binding").Item(0) 

echipa1 = echipe.innerText 

對不起,如果我錯了...祝你好運!

+0

您使用'echipe.innerText'意味着'echipe'是一個對象,所以它仍然需要'Set echipe = ...'。 – YowE3K