Konvertieren Sie eine Spaltennummer in Excel mit VBA in einen Buchstaben

Bilal Shahid 15 Februar 2024
  1. Konvertieren Sie eine Spaltennummer in Excel mit VBA in einen Buchstaben
  2. die Split()-Funktion
  3. Abschluss
Konvertieren Sie eine Spaltennummer in Excel mit VBA in einen Buchstaben

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.

Zellfunktion verwenden

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.

Verwenden Sie Columns().Address-Funktion

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.

Verwenden Sie die Split()-Funktion mit der Columns().Address-Funktion

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.

Verwenden Sie die Cells()-Funktion mit der Address()-Funktion

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.

Refined Cells()-Funktion mit Address()-Funktion

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.

Erstellen Sie eine Funktion

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 das Trennzeichen 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 das Delimiter "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.

Bilal Shahid avatar Bilal Shahid avatar

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

Verwandter Artikel - VBA Excel