2013-04-22 71 views
-1

我注意到我的VBA程序不再工作了,当我使用If语句尝试设置不同范围的单元格我的变量cityListRange。基本上,如果单元格“A:20”的内容是“马尼拉大都会”,我想将cityListRange初始化为范围G21:G37(马尼拉大都会城市列表)。如果不是,那么它将是另一个列表(G41:G43)(稍后在我的代码中,它将使用与cityListRange匹配的方法作为参考)。Excel - VBA:如果语句不工作与“设置范围= .Range(...)”

Set ws = ThisWorkbook.Sheets("Feuil2") 
With ws 
    If Range("A20").Value = "Metro Manila" Then 
     Set cityListRange = .Range("G21:G37") 'list of cities to compare to (IN METRO MANILA) 
    Else 
     Set cityListRange = .Range("G41:G43") 'list of cities to compare to (IN PROVINCE) 
    End If 
End With 

我的整个程序工作正常,当我刚初始化cityListRange一个且只有一个范围,但是当我加入我的if语句,它停止工作,我没有得到任何结果在我的程序结束返回。 你知道在这种情况下是否有使用If语句的计数器指示?如果是这样,写出它的最好方法是什么?提前致谢 !

+1

什么是当前'With'范围? – dotNET 2013-04-22 07:53:55

+0

这是我目前的工作表:设置ws = ThisWorkbook.Sheets(“Feuil2”) 与ws [...] End With。 – Phalanx 2013-04-22 07:57:52

回答

5

该错误可能是由于If行中Range之前缺失的时间段所致。

+0

完美,现在似乎工作!非常感谢 ! – Phalanx 2013-04-22 07:59:58

+0

请记住左边的绿色勾号标记以帮助应答者和未来的访问者。 – dotNET 2013-04-22 08:01:36

+0

当然,只需要等几分钟才能检查这个答案。祝你有美好的一天! – Phalanx 2013-04-22 08:02:14