为什么Range.Address()在链接时返回第一个单元格的地址?
在为这个问题写回答时,我偶然发现了一些意想不到的行为。
将Range
调用链接在一起时, Address
始终返回语句中第一个Range
对象的地址。 例如:
Public Sub Unexpected() Debug.Print Range("B3").Address Debug.Print Range("B3").Range("A1").Address End Sub
返回以下输出。
$B$3 $B$3
但我会期望它返回链中最后一个 Range对象的地址。
$B$3 $A$1
任何人都可以解释此行为? 最好附上相关文件的引用和链接。
有关使用Range().Cells()
文档Range().Cells()
指示Cells()
将返回给定Range()
相对于Range()
的左上angular单元格的位置。 用Range().Range()
testing这个理论Range().Range()
给出:
Public Sub Unexpected() Debug.Print Range("B1:C3").Range("A1").Address '$B$1 Debug.Print Range("B1:C3").Range("B1").Address '$C$1 End Sub
文档在这里 :
当应用于
Range
对象时,该属性是相对于Range
对象的。例如,如果select是单元格
C3
,则Selection.Range("B1")
将返回单元格D3
因为它与Selection
属性返回的Range
对象有关。 另一方面,代码ActiveSheet.Range("B1")
总是返回单元格B1
。