如何在vba中返回单元格Range对象的地址?

在编写vba解决方案时,有时候会遇到需要获得单元格的地址。

在vba中可以使用range对象的Address属性,它的语法如下:

expression . Address( RowAbsolute , ColumnAbsolute , ReferenceStyle , External , RelativeTo )

它的5个参数都是可选的,其中RowAbsolute , ColumnAbsolute参数默认为True,表示返回单元格的绝对引用,ReferenceStyle参数表示是返回A1类型的引用还是R1C1类型的引用,External属性表示是否返回包含工作簿的引用。

Sub QQ1722187970()
    Const xlA1 = 1
    Const xlR1C1 = -4150
    Dim oRng As Range
    Set oRng = Excel.ActiveSheet.Range("a1:b4")
    With oRng
        '返回含工作簿的绝对引用[test.xlsx]sheet1!$A$1:$B$4
        Debug.Print .Address(, , , True)
        '返回含工作簿的相对引用[test.xlsx]sheet1!!A1:B4
        Debug.Print .Address(False, False, , True)
        '返回不含工作表的相对引用A1:B4
        Debug.Print .Address(False, False, , False)
        '返回不含工作表的绝对引用$A$1:$B$4
        Debug.Print .Address(True, True, , False)
    End With
End Sub

 

       

发表评论