Hier noch eine Alternative, welche vermutlich etwas einfacher nachzuvollziehen ist:
Option Explicit
Sub Beispiele()
Debug.Print GenAddress(5, 1, Worksheet:="Tab1")
Debug.Print GenAddress(5, "A", Worksheet:="Tab2", ReferenceStyle:=xlR1C1)
Debug.Print GenAddress(5, 1, 10, 3, "Tab3", xlR1C1)
Debug.Print GenAddress(5, 1, 10, "C", "Tab4")
End Sub
'Hilfsfunktion für Jörgs spezielles Anliegen
Public Function GenAddress( _
Row, Column, _
Optional RowTo, Optional ColumnTo, _
Optional Worksheet As String, _
Optional ReferenceStyle As XlReferenceStyle = xlA1 _
) As String
If (IsMissing(RowTo) Or IsMissing(ColumnTo)) Then
'einzelne Zelle
GenAddress = Cells(Row, Column).Address(ReferenceStyle:=ReferenceStyle)
Else
'Bereich
GenAddress = Range(Cells(Row, Column), Cells(RowTo, ColumnTo)).Address(ReferenceStyle:=ReferenceStyle)
End If
If Trim$(Worksheet) <> "" Then
'Zelle/Bereich soll sich auf ein bestimmtes Blatt beziehen
GenAddress = "'" & Trim$(Worksheet) & "'!" & GenAddress
End If
End Function
|