Ok, ich wieder. Du machst es dir unnötig kompliziert. Excel bietet dafür schon fertige Möglichkeiten. Man muss das Rad also nicht völlig neu erfinden.
Für dein spezielles Anliegen mal das hier zur Veranschaulichung:
Option Explicit
Sub Beispiele()
'Ausgabe im Direktbereich von VBA:
'(ggf. einblenden mit STRG+G, bzw. siehe Menü: Ansicht)
'Nachfolgende Angaben sind alles absolute Zellenbezüge
Debug.Print
Debug.Print "Zelle definieren:"
Debug.Print GenAddress(1, 1, Worksheet:="Tab1")
Debug.Print GenAddress(1, "A", Worksheet:="Tab2")
Debug.Print GenAddress(1, "A", Worksheet:="Tab3", ReferenceStyle:=xlR1C1)
Debug.Print
Debug.Print "Bereich definieren:"
Debug.Print GenAddress(1, 1, 5, 1, "Tab4")
Debug.Print GenAddress(1, "A", 5, "A", "Tab5")
Debug.Print GenAddress(1, "A", 5, "A", "Tab6", ReferenceStyle:=xlR1C1)
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 Trim$(Worksheet) = "" Then
GenAddress = Cells(Row, Column).Address(ReferenceStyle:=ReferenceStyle)
Else
GenAddress = "'" & Trim$(Worksheet) & "'!" & Cells(Row, Column).Address(ReferenceStyle:=ReferenceStyle)
End If
'soll eine Bereichsangabe erzeugt werden?
If Not (IsMissing(RowTo) Or IsMissing(ColumnTo)) Then
'ja, die Hilfsfunktion nutzt sich selbst, um das Ende des Bereichs zu bilden
GenAddress = GenAddress & ":" & GenAddress(RowTo, ColumnTo, ReferenceStyle:=ReferenceStyle)
End If
End Function
Du solltest den Quellcode ggf. im Einzelschritt (F8-Taste) ausführen und dir anschauen was da der Reihe nach passiert.
Inhalte von Variablen kannst du dir ansehen, indem du den Mauszeiger über sie bewegst und kurz wartest. Der Inhalt erscheint dann als Tooltip.
Grüße
|