Excel - VBA:如果语句不能使用“Set Range = .Range(...)”

时间:2013-04-22 07:50:47

标签: excel vba excel-vba

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

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 个答案:

答案 0 :(得分:5)

错误可能是由于Range行中If之前的丢失时段造成的。