为什么我不能使用单个“单元”参考作为“范围”参数
这个问题: 从一个工作簿复制到另一个使我意识到,虽然我知道如何解决所描述的问题,但我不知道为什么会导致错误。
Range("A1").Select
是好的。
Range(Cells(1,1),Cells(1,1)).Select
是好的。
Range(Cells(1,1).Address).Select
。select是好的。
Range(Cells(1,1)).Select
返回一个Application定义的或Object定义的错误
这是一个错误,还是有一个更深的原因,我不明白?
扩大一点:
范围(“A1”)。select是好的。
相当简单,至于为什么。
范围(单元格(1,1),单元格(1,1))。select是好的。
是的,这最终相当于Range(A1:A1)
范围(单元格(1,1)。地址)。select是好的。
这最终相当于Range("$A$1")
这是因为.Address
部分parsing为单元格的地址。
Range(Cells(1,1))。Select返回一个Application定义的或Object定义的错误
该错误是因为VB试图解决这个问题,但不能,因为它只是一个单元格(和Range
是多个单元格(或至less是同一个单元格列出两次,如上面的第二个例子))。 但是,不像第三个例子,没有什么东西告诉VBA使用Cells(1,1)
的地址,这只是对单元格的一般参考…因此,VB不知道如何处理它。 ..你想Cells(1,1).Font
,或.Value
,或者.Row
等等…
我希望有一点帮助,但是请查看@Soulfire提供的链接,如果还不清楚,可以在Google(Google)附近详细了解Range()
。
单元格(1,1)评估的是该单元格中的值。
它相当于Cells(1,1).Value
你会有与Range(Range(“A1”))相同的问题