gibt es eine einfache Methode die Spaltenbezeichnng aus ActiveCell zu bestimmen.
Z.B. ich möchte aus B3 den String "B" bekommen, usw. Oder muss ich mir ne eigene Sub dafür schreiben...?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Left(ActiveCell.AddressLocal(0, 0), 1)
End Sub
Für Zelle wie AB3 bekommst Du das bei (Excel Gut / VBA Gut) sicher dann selber hin.Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Split(ActiveCell.Address, "$", -1, vbTextCompare)(1)
End Sub
Gruß von LuschiPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column
Gruß MatthiasPrivate Function GetCoulumn(ByVal ActiveCell As String, ByRef Column As String) As Boolean
Try
Dim MyColumn() As String = Nothing
MyColumn = Split(ActiveCell, "$")
If MyColumn.Length
Ich dachte nur es geht auch ohne Split, bzw. direkt ....Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.Calculate
End Sub
Um die Spaltenbezeichnung aus der ActiveCell
in Excel VBA zu lesen, kannst Du folgende Schritte ausführen:
Öffne den VBA-Editor:
ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.Füge ein neues Modul hinzu:
Einfügen
> Modul
.Füge den folgenden Code ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Left(ActiveCell.Address, 1)
End Sub
Dieser Code zeigt die Spaltenbezeichnung der ActiveCell
an, wenn Du die Auswahl änderst.
Testen:
Fehler: "Objekt erwartet"
Fehler: "MsgBox gibt nicht die erwartete Spaltenbezeichnung zurück"
ActiveCell.Column
in Kombination mit Cells
:
MsgBox Cells(1, ActiveCell.Column).Address(0, 0)
Wenn Du eine andere Methode bevorzugst, um die Spaltenbezeichnung zu erhalten, kannst Du auch die Funktion Split
verwenden:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Split(ActiveCell.Address, "$")(1)
End Sub
Diese Methode funktioniert auch für Spaltenbezeichnungen wie AB
.
Hier sind einige praktische Beispiele, wie Du die ActiveCell
in VBA verwenden kannst:
Einfaches Beispiel für die Verwendung von ActiveCell
:
Sub GetActiveCellColumn()
Dim spalte As String
spalte = Left(ActiveCell.Address, 1)
MsgBox "Die Spalte ist: " & spalte
End Sub
Komplexeres Beispiel mit mehreren Spalten:
Sub GetActiveCellFullAddress()
MsgBox "Die Adresse der aktiven Zelle ist: " & ActiveCell.Address
End Sub
Verwende ActiveCell.Column
: Um die Spaltennummer direkt zu erhalten, kannst Du ActiveCell.Column
verwenden. Dies kann hilfreich sein, wenn Du mit numerischen Indizes arbeiten möchtest.
Vermeide Select
und Activate
: Wenn möglich, arbeite direkt mit den Zellen, um die Leistung zu steigern. Beispiel:
Dim spalte As String
spalte = Cells(1, ActiveCell.Column).Address(0, 0)
1. Wie kann ich die Spalte für eine bestimmte Zelle erhalten?
Du kannst die ActiveCell
durch die gewünschte Zelle ersetzen, z.B. Range("B3").Column
.
2. Funktioniert das in allen Excel-Versionen? Ja, die oben genannten Methoden sind in den meisten modernen Excel-Versionen (Excel 2010 und später) anwendbar.
3. Was ist der Unterschied zwischen ActiveCell.Address
und ActiveCell.AddressLocal
?
ActiveCell.Address
gibt die Adresse in der internationalen Notation zurück, während ActiveCell.AddressLocal
die Adresse in der lokalen Sprache des Excel-Systems zurückgibt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen