2014-09-24 136 views
0

我一直從Stackoverflow獲得大量答案,我非常感謝您專家提供的所有信息!這是我第一次問一個問題 - 非常感謝。爲什麼我在VBA中爲每個循環獲取Variable Undefined

我在一個大的Excel 2010工作簿的後端運行了各種VBA程序,我完全無法理解我當前的問題。在一個模塊中,我有一個公共子集,其中有一個For Each循環,它循環遍歷一個在工作表中加載了一系列字符串值的變體。

當我運行這個循環時,我得到一個立即編譯錯誤「變量未定義」,並且每個變量突出顯示或程序運行但沒有結束循環。我已經在循環中直接評論了所有內容,而且我仍然遇到這個問題。當循環運行時,我看到字符串值正確地檢索到每個變量。如果我註釋掉循環,那麼子運行沒有任何問題。

這是我必須要明確:

Dim showWord as String 
showWord = "" 
For Each thisWord In allWords 
    'showWord = CStr(thisWord) 
    'MsgBox showWord 
Next x 

現在,我在不同的模塊在其他地方有這樣的完全相同的循環,它始終沒有問題運行。我確實改變了每個變量和變量的變量名稱,但就是這樣。

有人能幫我弄清楚這裏發生了什麼嗎?

謝謝。

+3

愚蠢的問題:你已經在代碼的早些時候定義過'thisWord'和'allWords'了嗎? – LittleBobbyTables 2014-09-24 18:26:29

回答

-1

敢肯定你沒有定義的變量allWords,如下

Dim showWord as String 
showWord = "" 

dim allWords as (wtv) 
allWords = (something) 

'if not allWords is nothing then 
    For Each thisWord In allWords 
    'showWord = CStr(thisWord) 
    'MsgBox showWord 
    Next x 
'end if 
2

你的循環不會因爲Next x最終必須是你的循環相同的變量,像這樣Next ThisWord的東西,你必須申報allWords

Dim showWord as String 
showWord = "" 

For Each thisWord In allWords 
    .... 
Next thisWord 
+0

好抓!原來的響應者完全錯過了(看起來似乎是OP!)。 – Jeeped 2016-03-23 23:55:10

相關問題