HOWTO · VBA
So konvertieren Sie eine Spaltennummer in Excel mit VBA in einen Buchstaben
Erfahren Sie, wie Sie eine Excel-Spaltennummer in VBA mithilfe adressbasierter und arithmetischer Ansätze in ihre Buchstabenbezeichnung umwandeln.
Auf dieser Seite
Um eine Spaltennummer in VBA in ihre Excel-Buchstaben umzuwandeln, verwenden Sie Columns(columnNumber).Address, wenn eine vollständige Spaltenadresse nützlich ist, oder extrahieren Sie die Buchstaben mit Split aus dieser Adresse. Für eine bloße Bezeichnung ohne Nachschlagen in einem Arbeitsblattbereich verwenden Sie den unten beschriebenen arithmetischen Ansatz. Die Nummerierung der Excel-Spalten beginnt bei 1: Beispiele sind 1 → A, 26 → Z, 27 → AA und 100 → CV.
Eine Spaltennummer in Excel mit VBA in einen Buchstaben konvertieren
Eine vollständige Spaltenadresse mit Columns und Address abrufen
Übergeben Sie die Spaltennummer an das Columns-Element von Excel und lesen Sie dessen Address aus. Beispielsweise gibt Columns(100).Address eine vollständige Referenz wie $CV:$CV zurück, nicht nur CV. Verwenden Sie diese Form, wenn Ihr Code die Adresse selbst benötigt.
Nur die Spaltenbuchstaben mit Split extrahieren
Um nur die Bezeichnung zu erhalten, machen Sie die Spaltenbuchstaben in der Adresse relativ und teilen Sie das Ergebnis am Doppelpunkt: Split(Columns(100).Address(, False), ":")(0). Der erste Teil ist CV; der zweite Teil wiederholt ihn nach dem Doppelpunkt. Split ist eine VBA-Funktion, während Columns und Address Elemente des Excel-Objektmodells sind.
Sie können auch von einer Zelladresse ausgehen. Cells(1, 100).Address gibt $CV$1 zurück; das Teilen an $ und das Nehmen von Element 1 ergibt die Spaltenbezeichnung: Split(Cells(1, 100).Address, "$")(1). Cells wählt die Zelle in der angegebenen Zeile und Spalte aus, und Address formatiert ihre Referenz.
Mit Arithmetik konvertieren
Eine arithmetische Konvertierung ist nützlich, wenn Sie eine Zeichenfolge benötigen und Bereichszugriffe auf dem Arbeitsblatt vermeiden möchten. Das Buchstabensystem ist ein Stellenwertsystem zur Basis 26 ohne die Ziffer null: Subtrahieren Sie 1, bevor Sie den Rest modulo 26 bestimmen, ordnen Sie diesen Rest A bis Z zu und fahren Sie dann mit dem Quotienten fort. Diese Anpassung sorgt dafür, dass der Übergang von Z zu AA funktioniert. Eine Implementierung sollte beispielsweise für die Eingaben 1, 26, 27 und 100 jeweils A, Z, AA und CV zurückgeben.
Eine arithmetische Funktion mit dieser Methode setzt eine gültige positive Spaltennummer voraus; sie überprüft weder die Arbeitsblattgrenzen von Excel noch andere Eingaben. Wählen Sie die adressbasierte Methode, wenn Sie eine Excel-Referenz benötigen, und die arithmetische Methode, wenn Sie nur die Buchstaben benötigen.
Die Funktion Split() verstehen
Split(expression, delimiter) teilt eine Zeichenfolge überall dort, wo das Trennzeichen vorkommt, und gibt ein Array von Teilzeichenfolgen zurück. In Split(Columns(100).Address(, False), ":")(0) trennt der Doppelpunkt CV:CV, und der Index 0 wählt das erste CV aus. In Split(Cells(1, 100).Address, "$")(1) bedeuten die Dollarzeichen um CV, dass der Index 1 die Bezeichnung ist. Für diese Ausdrücke ist keine Konvertierung in String() erforderlich.
Fazit
Verwenden Sie Columns und Address, wenn Sie eine Excel-Referenz benötigen, und anschließend Split, um die Spaltenbezeichnung daraus zu extrahieren. Für eine eigenständige Zeichenfolge kann Arithmetik dieselben Buchstaben ohne Bereichszugriff auf dem Arbeitsblatt erzeugen. Die arithmetische Methode erwartet eine gültige positive Eingabe und führt keine Eingabeüberprüfung durch.