Konvertieren Sie eine Spaltennummer in Excel mit VBA in einen Buchstaben
- Konvertieren Sie eine Spaltennummer in Excel mit VBA in einen Buchstaben
-
die
Split()
-Funktion - Abschluss
Dieser Artikel beschreibt verschiedene Funktionen, die eine Spaltennummer in Microsoft Excel mithilfe von VBA in einen Spaltenbuchstaben umwandeln.
Konvertieren Sie eine Spaltennummer in Excel mit VBA in einen Buchstaben
In Microsoft Excel gibt es mehrere Funktionen, mit denen Sie eine Spaltennummer in einen Spaltenbuchstaben umwandeln können. Dies ist sehr nützlich für Benutzer, die die Spaltennummer kennen und sie einem Spaltenbuchstaben zuordnen.
Diese Lösungen können den Aufwand für die Suche nach der genauen Spalte aus nur einer angegebenen Zahl verringern.
Lösung 1 - Verwenden Sie die Funktion Cells().Address
Wenn Sie die Zeile und die Spalte in Microsoft Excel kennen und die entsprechende Referenz finden möchten, verwenden Sie die folgende Funktion in VBA.
Syntax:
Cells(Row,Column).Address
Das Bild unten ist eine Darstellung der Funktion.
Lösung 2 - Verwenden Sie die Funktion Columns().Address
Wenn Ihnen nur eine Spaltennummer zur Verfügung gestellt wird, können Sie trotzdem auf einfachste Weise den entsprechenden Spaltenbuchstaben dafür finden. Verwenden Sie die Funktion Columns()
mit der Funktion Address()
, um die entsprechende Spaltenreferenz zu erhalten.
Syntax:
Columns(Column Index).Address
Die Funktion Columns()
wurde mit 100
als Column Index
ausgeführt. Das Ergebnis der Funktion wird im folgenden Format $ColumnLetter:$ColumnLetter
erreicht.
Die Funktionsweise der Funktion ist im Bild unten zu sehen.
Lösung 3 - Verwenden Sie die Funktion Split()
mit der Funktion Columns().Address
Auf die aus Lösung 2 erhaltene Antwort kann die Funktion Split()
angewendet werden, um statt der gesamten Adresse nur die Spaltenbuchstaben zu erhalten. Hier ist die Syntax, wie die Funktion Split
über die Funktion Columns().Address
verwendet werden kann.
Split((Columns(Column Index).Address(,0)),":")(0)
Bei Verwendung der Funktion Split()
wird der Parameter ColumnAbsolute
in der Funktion Address()
als false übergeben und die Teilstrings werden am Doppelpunkt Delimiter
geteilt. Der erste Teilstring enthält den Spaltenbuchstaben; Daher wird am Ende der Funktion Split()
eine Null angehängt, um anzugeben, dass der erste Teilstring erforderlich ist.
Beachten Sie, dass Split()
und Funktionen in einem späteren Abschnitt des Artikels beschrieben werden. Scrollen Sie unten für weitere Details.
Wenn die Anweisung mit einem Column Index
-Wert von 100
ausgeführt wird, gibt sie die folgenden Ergebnisse zurück.
Lösung 3 - Verwenden Sie die Funktion Cells()
mit der Funktion Address()
Eine andere Technik, um den Spaltenbuchstaben aus einer Spaltennummer zu erhalten, ist die Verwendung der Funktion Cells()
mit der Funktion Address()
. So erhalten Sie den Spaltenbuchstaben.
Syntax:
Cells(1, Column Number).Address
Die Anweisung gibt den Zellbezug in folgendem Format zurück: $CV$1
. Die Ausführung der Code-Anweisung liefert die folgenden Ergebnisse.
Verfeinerung der Lösung 3
Lösung 3 kann weiter verfeinert werden, um nur den Spaltenbuchstaben zu extrahieren. Dazu kann die Funktion Split()
verwendet werden.
Hier ist die Anweisung, die nur den Spaltenbuchstaben zurückgibt.
Split(Cells(1, Column Number).Address(True, False), "$")(0)
Die Funktion Split()
bricht die Adresszeichenfolge am "$"
-Zeichen, und eine Null am Ende der Anweisung zeigt an, dass nur die erste Teilzeichenfolge erforderlich ist.
Die Codeanweisung erzeugt die folgenden Ergebnisse.
Lösung 4 – Erstellen Sie eine Funktion
Diese Lösung verwendet kein Bereichsobjekt. Es wird geschätzt, dass es eine schnellere Ausführungsgeschwindigkeit hat und vermutlich weniger Speicher benötigt.
Zudem benötigt es keinen Zugriff auf die Excel API
. Hier ist eine Funktion, die den Spaltenbuchstaben aus der als Parameter angegebenen Spaltennummer berechnet.
Function test(ColNum As Long) As String
Dim n As Long
Dim ch As Byte
Dim str As String
n = ColNum
Do
ch = ((n - 1) Mod 26)
str = Chr(ch + 65) & str
n = (n - ch) \ 26
Loop While n > 0
test = str
End Function
Die Funktion test()
kann in der Unterroutine main()
aufgerufen werden, um den Spaltenbuchstaben zu erhalten, der der Spaltennummer entspricht. Das Folgende ist die Darstellung der Ausführung des Programms.
die Split()
-Funktion
Eine Split()
-Funktion zerlegt den Eingabeausdruck basierend auf einem an die Funktion übergebenen Trennzeichen in mehrere Teilzeichenfolgen.
Syntax:
Split ( Expression, [Delimiter], [Limit], [Compare] )
Die Funktion Split()
nimmt einen Ausdruck
als Parameter und zerlegt ihn in mehrere Teilstrings. Dieser obligatorische Parameter muss der Funktion String()
übergeben werden.
Der zweite Parameter ist das Delimiter
; ein optionales Argument, das an die Funktion Split()
übergeben wird. Ein Leerzeichen wird standardmäßig als Trennzeichen
betrachtet, und der Benutzer kann ein anderes Trennzeichen
angeben, um die Zeichenfolge zu teilen, z. B. Kommas, Doppelpunkte usw.
Der Parameter Limit
ist ein optionales Argument, das die Gesamtzahl der Teilzeichenfolgen angibt, die der Benutzer benötigt. Standardmäßig ist der Wert für Limit
-1
; Daher werden alle Teilzeichenfolgen zurückgegeben.
Der Parameter Compare
ist ein optionales Argument, das 0
oder 1
als Eingabe akzeptiert. Es gibt den Vergleichstyp an, den die Funktion ausführen muss.
- Bei der Übergabe von
0
als Argument erfolgt ein exakter, case-sensitiver Vergleich. Wenn dasTrennzeichen
also"XYZ"
ist, akzeptiert die Funktion NUR"XYZ"
und lehnt"XYZ"
ab. - Ein case-insensitiver Vergleich wird durchgeführt, wenn
1
als Argument übergeben wird. Wenn also dasDelimiter
"XYZ"
ist, akzeptiert die Funktion auch"XYZ"
.
Abschluss
Microsoft Office-Anwendungen bieten zahlreiche Funktionen für ihre Benutzer. Mit der Programmierung in der VBA-Sprache wurde es für Benutzer einfacher, automatisierte Aufgaben mit nur wenigen Codezeilen zu erledigen.
VBA unterstützt zahlreiche Funktionen, die es dem Benutzer ermöglichen, verschiedene Aufgaben auszuführen. Wie im Artikel zu sehen ist, stehen verschiedene Ansätze zur Verfügung, um dieselbe Aufgabe zu erfüllen. Zahlreiche Ansätze werden verwendet, um den Spaltenbuchstaben zu erhalten, der einer als Eingabe bereitgestellten Spaltennummer entspricht.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub