为什么我在VBA中为每个循环获取Variable Undefined

为什么我在VBA中为每个循环获取Variable Undefined

问题描述:

我一直从*获得大量答案,我非常感谢您专家提供的所有信息!这是我第一次问一个问题 - 非常感谢。为什么我在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

敢肯定你没有定义的变量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 

你的循环不会因为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