Wie man von Zeile, Spalte in Excel die A1-Schreibweise?

Gegeben, eine Zeile und Spalte (Wie Lange), wie können Sie bestimmen die spreadsheet-notation mit Hilfe von VBA in Excel (2007):

z.B.:

(R, C) = (1, 1) -> "A1"
(R, C) = (2, 1) -> "A2"
(R, C) = (2, 2) -> "B2"

So, wenn Sie hatte eine Funktion:

Function CellRef(R As Long, C As Long) As String

vorausgesetzt, dass die Funktionalität, die Sie tun könnten, so etwas wie:

Worksheet.Range(CellRef(R1, C1) + ":" + CellRef(R2, C2)).Copy

Ein wenig hintergrund, in diesem Fall ist der falsche Ansatz zu nehmen: Der Zweck von diesem ist, dass ich ein master-Blatt, die beschreibt, andere Arbeitsblätter in einer Tabelle:

WorksheetName, Range etc....

Diesem master-Blatt steuert Transformationen auf dem Blatt, aber der Range-Wert ist natürlich in Excel-notation für die bequeme später verwenden Sie in verweisen auf die Reihe. Allerdings eine routine zur Verwaltung dieser Tabelle, Bericht, Ausnahmen und Sicherstellung der Konsistenz bekommt man wirklich Dinge, die von anderen Blättern in der Zeile und Spalte, so zum Beispiel wird es eine Zeile und Spalte, wo es etwas weiß ist, beginnend und endend.

Hier ist die Funktion, die ich endete mit:

Private Function CellRef(R As Long, C As Long) As String
    CellRef = vbNullString
    On Error GoTo HandleError:
    CellRef = Replace(Mid(Application.ConvertFormula("=R" & R & "C" & C, XlReferenceStyle.xlR1C1, XlReferenceStyle.xlA1), 2), "$", "")
    Exit Function
HandleError:
End Function
InformationsquelleAutor Cade Roux | 2009-07-11
Schreibe einen Kommentar