这个问题:Copy from one workbook to another让我意识到虽然我知道如何解决所描述的问题,但我并不知道它为什么会导致错误。
Range("A1").Select
没问题。
Range(Cells(1,1),Cells(1,1)).Select
没问题。
Range(Cells(1,1).Address).Select
没问题。
Range(Cells(1,1)).Select
返回应用程序定义或对象定义错误
这是一个错误,还是有一个我不明白的深层原因?
答案 0 :(得分:2)
单元格(1,1)计算该单元格中的内容值。
相当于Cells(1,1).Value
你会遇到同样的问题(范围(" A1"))。选择
答案 1 :(得分:2)
扩展一点:
范围(" A1")。选择没问题。
非常直截了当的原因。
范围(单元格(1,1),单元格(1,1))。选择正常。
是的,最终相当于Range(A1:A1)
范围(Cells(1,1).Address)。选择没问题。
这最终等同于Range("$A$1")
这是因为.Address
部分解析为单元格的地址。
Range(Cells(1,1))。Select返回一个Application defined或Object defined error
错误是因为VB试图解决这个问题,但不能解决这个问题,因为它只是一个单元格(而Range
是多个单元格(或至少列出两次相同的单元格,作为上面的第二个例子))。但是,与第三个例子不同的是,VBA没有告诉我使用Cells(1,1)
的地址,这只是对一般细胞的引用...因此,VB并不是这样的知道该怎么做真的......你想要Cells(1,1).Font
,.Value
,还是.Row
等......
我希望这有点帮助,但请查看@Soulfire提供的链接,如果目前还不清楚,可以通过Google了解Range()
的更多详情。