我正在尝试在 VBA 中定义一个范围,但由于某种原因,我的方法失败了。在下面的代码示例中,前两行有效,但最后一行失败并显示消息“对象“_Worksheet”的方法“Range”失败“:
Set c = Parametre.Range("B2")
Set c = Parametre.Range("XFD2").End(xlToLeft)
Set c = Range(Parametre.Range("B2"), Parametre.Range("XFD2").End(xlToLeft))
我检查过该工作表没有受到保护,第二个参数位于第一个参数的右侧(它是 L2),目前我非常困惑为什么我的方法会失败。如果您能提供任何有关问题的信息,我将不胜感激。
答案1
您似乎错过了 Parameter 对象,因此它将默认返回 Worksheet,并因此失败。尝试使用以下代码:
Set c = Parametre.Range(Parametre.Range("B2"), Parametre.Range("XFD2").End(xlToLeft))
或者如果你想编写更干净的代码,请使用以下命令:
with Parametre
Set c = .Range("B2")
Set c = .Range("XFD2").End(xlToLeft)
Set c = .Range(.Range("B2"), .Range("XFD2").End(xlToLeft))
end with