Excel-VBA:If语句不使用;设置范围=.Range(…)";

Excel-VBA:If语句不使用;设置范围=.Range(…)";,vba,excel,Vba,Excel,我注意到,当我使用If语句尝试将不同范围的单元格设置为变量citylisteng时,我的VBA程序不再工作。基本上,如果单元格“A:20”的内容是“马尼拉大城市”,我想将CityListeng初始化为G21:G37(马尼拉大城市列表)。如果不是,那么它将是另一个列表(G41:G43)(稍后在我的代码中,它使用一个match方法,citylstangle作为引用) 我的整个程序在初始化CityListeng为一个且只有一个范围时运行良好,但当我添加if语句时,它停止工作,并且在程序结束时没有返回任

我注意到,当我使用If语句尝试将不同范围的单元格设置为变量citylisteng时,我的VBA程序不再工作。基本上,如果单元格“A:20”的内容是“马尼拉大城市”,我想将CityListeng初始化为G21:G37(马尼拉大城市列表)。如果不是,那么它将是另一个列表(G41:G43)(稍后在我的代码中,它使用一个match方法,citylstangle作为引用)

我的整个程序在初始化CityListeng为一个且只有一个范围时运行良好,但当我添加if语句时,它停止工作,并且在程序结束时没有返回任何结果。
您知道在这种情况下使用if语句是否有相反的指示?如果是的话,最好的写作方式是什么?提前谢谢

错误可能是由于
If
行中
Range
之前缺少句点造成的。

当前
的范围是什么?这是我当前的工作表:设置ws=ThisWorkbook。工作表(“Feuil2”)的范围是ws[…]以结尾。请记住左侧的绿色勾号,以帮助回答者和未来的访问者。当然,只需等待几分钟就可以检查这个答案。祝您今天过得愉快!
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