Vba 为什么可以';t我用一个“;“细胞”;作为“参考”的引用;“范围”;参数

Vba 为什么可以';t我用一个“;“细胞”;作为“参考”的引用;“范围”;参数,vba,excel,Vba,Excel,这个问题:让我意识到,虽然我知道如何修复所描述的问题,但我不知道它为什么会导致错误 范围(“A1”)。选择即可 范围(单元格(1,1),单元格(1,1))。选择即可 范围(单元格(1,1).地址)。选择即可 范围(单元格(1,1))。选择返回应用程序定义或对象定义的错误 这是一个bug,还是有更深层次的原因我不明白?单元格(1,1)计算位于该单元格中的内容的值 它相当于单元格(1,1)。值 对于范围(Range(“A1”))也会有同样的问题。选择单元格(1,1)的计算结果为该单元格中的值 它相当

这个问题:让我意识到,虽然我知道如何修复所描述的问题,但我不知道它为什么会导致错误

范围(“A1”)。选择即可

范围(单元格(1,1),单元格(1,1))。选择即可

范围(单元格(1,1).地址)。选择即可

范围(单元格(1,1))。选择
返回应用程序定义或对象定义的错误

这是一个bug,还是有更深层次的原因我不明白?

单元格(1,1)计算位于该单元格中的内容的值

它相当于单元格(1,1)。值

对于范围(Range(“A1”))也会有同样的问题。选择单元格(1,1)的计算结果为该单元格中的值

它相当于单元格(1,1)。值

您可能会遇到与范围(范围(“A1”)相同的问题。请选择

稍微展开:

范围(“A1”)。选择即可

原因很简单

范围(单元格(1,1),单元格(1,1))。选择即可

是的,这最终相当于
范围(A1:A1)

范围(单元格(1,1).地址)。选择即可

这最终相当于
范围($A$1”)
这是因为
.Address
部分解析为单元格的地址

范围(单元格(1,1))。选择返回应用程序定义或对象定义的错误

错误是因为VB试图解决这个问题,但无法解决,因为它只是一个单元格(而
范围
是多个单元格(或者至少同一个单元格列出两次,如上面的第二个示例所示))。但是,与第三个例子不同的是,没有任何东西告诉VBA使用
单元格(1,1)
的地址,这只是对单元格的一般引用…因此,VB实际上不知道如何处理它…您想要
单元格(1,1).Font
,还是
.Value
,还是
.Row
,等等

我希望这会有一点帮助,但请查看提供的@Soulfire链接,如果仍然不清楚,您可以在谷歌上搜索
Range()

展开一点:

范围(“A1”)。选择即可

原因很简单

范围(单元格(1,1),单元格(1,1))。选择即可

是的,这最终相当于
范围(A1:A1)

范围(单元格(1,1).地址)。选择即可

这最终相当于
范围($A$1”)
这是因为
.Address
部分解析为单元格的地址

范围(单元格(1,1))。选择返回应用程序定义或对象定义的错误

错误是因为VB试图解决这个问题,但无法解决,因为它只是一个单元格(而
范围
是多个单元格(或者至少同一个单元格列出两次,如上面的第二个示例所示))。但是,与第三个例子不同的是,没有任何东西告诉VBA使用
单元格(1,1)
的地址,这只是对单元格的一般引用…因此,VB实际上不知道如何处理它…您想要
单元格(1,1).Font
,还是
.Value
,还是
.Row
,等等


我希望这会有所帮助,但请查看提供的@Soulfire链接,如果仍然不清楚,您可以在谷歌上搜索
Range()
的更多详细信息。

如果您只需要单个单元格,则不需要
Range
。您只需调用
单元格(1,1)。选择
无需范围。这不是一个bug,而是一个冗余调用,因此不需要。查看您所引用问题中的@ExcelHero答案。如果您只需要单个单元格,则不需要
范围。您只需调用
单元格(1,1)。选择
无需范围。这不是一个bug,而是一个冗余调用,因此不需要。看看你提到的问题中的@ExcelHero答案。这在这一点上有点扩展。每个类都有一个默认成员,单元格的默认成员是
.Value
。这在这一点上进行了一些扩展。每个类都有一个默认成员,单元格的默认成员是
.Value
。不是拾取nits,而是
范围(单元格(1,1).Address)
实际上解析为
范围($a$1”)
因为默认值的RowAbsolute和ColumnAbsolute参数为
True
@Jeeped-没有拾取nits,您完全正确。我只是忘记了它是绝对引用(我会更新我的帖子)。谢谢你的额外信息!不拾取NIT,但
范围(单元格(1,1).Address)
实际上解析为
范围($A$1”)
,因为默认值的RowAbsolute和ColumnAbsolute参数为
True
@Jeeped-没有拾取NIT,您完全正确。我只是忘记了它是绝对引用(我会更新我的帖子)。谢谢你的额外信息!