Skip to main content

Range.Address property

Returns a String value that represents the range reference in the language of the macro.


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

expression A variable that represents a Range object.


Name Required/Optional Data type Description
RowAbsolute Optional Variant True to return the row part of the reference as an absolute reference. The default value is True.
ColumnAbsolute Optional Variant True to return the column part of the reference as an absolute reference. The default value is True.
ReferenceStyle Optional XlReferenceStyle The reference style. The default value is xlA1.
External Optional Variant True to return an external reference. False to return a local reference. The default value is False.
RelativeTo Optional Variant If RowAbsolute and ColumnAbsolute are False, and ReferenceStyle is xlR1C1, you must include a starting point for the relative reference. This argument is a Range object that defines the starting point.

NOTE: Testing with Excel VBA 7.1 shows that an explicit starting point is not mandatory. There appears to be a default reference of $A$1.


If the reference contains more than one cell, RowAbsolute and ColumnAbsolute apply to all rows and columns.


The following example displays four different representations of the same cell address on Sheet1. The comments in the example are the addresses that will be displayed in the message boxes.

Set mc = Worksheets("Sheet1").Cells(1, 1)
MsgBox mc.Address() ' $A$1
MsgBox mc.Address(RowAbsolute:=False) ' $A1
MsgBox mc.Address(ReferenceStyle:=xlR1C1) ' R1C1
MsgBox mc.Address(ReferenceStyle:=xlR1C1, _
 RowAbsolute:=False, _
 ColumnAbsolute:=False, _
 RelativeTo:=Worksheets(1).Cells(3, 3)) ' R[-2]C[-2]

Leave a comment

Your email address will not be published. Required fields are marked *

Format your code: <pre><code class="language-vba">place your code here</code></pre>