Excel 将范围指定给变量时的奇怪行为

Excel 将范围指定给变量时的奇怪行为,excel,vba,Excel,Vba,我目前面临着一个非常奇怪的情况,我正在寻找一些解释 基本上,我有一个Excel工作簿,带有一些隐藏/取消隐藏某些范围的按钮 代码如下: Sub HideMyRange() Dim RngA as Range Set RngA = Range("MyRange") RngA.EntireRow.Hidden = True End Sub 代码在Set RngA=Range(“MyRange”) 我认为拼写或MyRange所指的内容有错误,所以我去检查了

我目前面临着一个非常奇怪的情况,我正在寻找一些解释

基本上,我有一个Excel工作簿,带有一些隐藏/取消隐藏某些范围的按钮

代码如下:

Sub HideMyRange()
    Dim RngA as Range
    Set RngA = Range("MyRange")
    RngA.EntireRow.Hidden = True
End Sub
代码在
Set RngA=Range(“MyRange”)

我认为拼写或MyRange所指的内容有错误,所以我去检查了一下。我在工作簿级别正确定义了MyRange,下面是参考:
=repap$D 133美元:D 146美元;重述一遍$D$273:$D$286

如果我双击命名区域来修改名称,我会将其作为参考:
=Recap!R133C4:R146C4;扼要重述!R273C4:R286C4
,但仅在调试模式下。如果我在代码未运行时进入其中,我仍然会得到xlA1符号

所以我有一个奇怪的想法,复制我的xlA1引用,然后在代码运行时通过名称管理器将其粘贴到xlR1C1引用上。现在是一件奇怪的事情:在我完成这项工作之后,我没有收到更多的错误,代码运行得很好

我已尝试使用
此工作簿.Names(rngName1.referestorange
更改我的代码,但不断出现错误。我还尝试在代码中添加
Application.ReferenceStyle=xlA1
,但这对我的问题没有任何影响


我有什么遗漏吗?我必须对所有已定义的名称重复该过程,这样做后,我无法再次复制错误。

如果您的引用如您所示(带引号),则您的引用似乎是字符串,而不是范围。@RonRosenfeld:不,没有引号,我与该标记混淆,以代码形式显示文本。我已经从原始问题中删除了它们,我记得以前有过这种行为,我只是开始使用
Application.Names(pName).referestorange
(将
pName
替换为名称--我在Utils模块中使用它,因此使用参数而不是名称)。试试看。也许会有帮助。你的代码在工作表模块中吗?如果你把它移动到一个标准模块,会有什么不同吗?在我的例子中,它是在一个标准模块中。我希望它在两个地方都能起作用。如果您的引用如您所示(带引号),那么您的引用似乎是一个字符串,而不是一个范围。@RonRosenfeld:不,没有引号,我混淆了该标记以代码形式显示文本。我已经从原始问题中删除了它们,我记得以前有过这种行为,我只是开始使用
Application.Names(pName).referestorange
(将
pName
替换为名称--我在Utils模块中使用它,因此使用参数而不是名称)。试试看。也许会有帮助。你的代码在工作表模块中吗?如果你把它移动到一个标准模块,会有什么不同吗?在我的例子中,它是在一个标准模块中。我希望这两个地方都能奏效。