<p>If I have a Range object--for example, let's say it refers to cell <code>A1</code> on a worksheet called <code>Book1</code>.  So I know that calling <code>Address()</code>  will get me a simple local reference: <code>$A$1</code>.  I know it can also be called as <code>Address(External:=True)</code> to get a reference including the workbook name and worksheet name: <code>[Book1]Sheet1!$A$1</code>.</p>

<p>What I want is to get an address including the sheet name, but not the book name.  I really don't want to call <code>Address(External:=True)</code> and try to strip out the workbook name myself with string functions.  Is there any call I can make on the range to get <code>Sheet1!$A$1</code>?</p>

Only way I can think of is to concatenate the worksheet name with the cell reference, as follows:
```
```
Dim cell As Range
Dim cellAddress As String
Set cell = ThisWorkbook.Worksheets(1).Cells(1, 1)
cellAddress = cell.Parent.Name & "!" & cell.Address(External:=False)
```
```
EDIT:
Modify last line to :
```
```
cellAddress = "'" & cell.Parent.Name & "'!" & cell.Address(External:=False)
```
```
if you want it to work even if there are spaces or other funny characters in the sheet name.