Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeichen aus Zeichenkette per VBA auslesen?

Zeichen aus Zeichenkette per VBA auslesen?
Stefan
Hallo zusammen,
in einer Zelle stehen folgende Zeichenketten: CS_XYZ_1 oder DR_1234
Wie kann ich per VBA die Zellen ansprechen, die ein CS_ als Anfang haben?
Danke für Eure Hinweise.
Anzeige
AW: Zeichen aus Zeichenkette per VBA auslesen?
13.10.2011 09:39:56
Henrik
Hallo,
ich denke mit der Mid.Funktion kommst du weiter

Public Sub hen()
Dim strZelle As String
strZelle = "DR_1234"
MsgBox Mid(strZelle, 1, 3)
End Sub

AW: Zeichen aus Zeichenkette per VBA auslesen?
13.10.2011 09:41:11
marcl
Hallo Stefan,
If Left(....,2)="CS" then ...
Gruß
marcl
AW: Zeichen aus Zeichenkette per VBA auslesen?
13.10.2011 10:08:16
Stefan
danke euch
If .Cells(Left(iCntRows, 3), 2) = "CS" liefert aber bei mir nicht das ergebnis, obwohl in der Zelle CS1234 steht.
Mach ich was falsch?
Anzeige
AW: Zeichen aus Zeichenkette per VBA auslesen?
13.10.2011 10:34:19
Oliver
Hallo marcl;
versuch's mal mit:
if instr(.cells(iCntRows,3),"CS") then...
gruß
olli
AW: Zeichen aus Zeichenkette per VBA auslesen?
13.10.2011 10:47:24
Stefan
Jaa, das funktioniert. Super. Danke.
AW: Zeichen aus Zeichenkette per VBA auslesen?
13.10.2011 11:45:24
Henrik
Um die Performance wirklich hoch zu halten, falls man mit sehr großen Datenmengen arbeitet, ist die Mid-Function etwas schneller:
Hier zum Testen:

Public Sub langsam()
Dim lngA As Long
For lngA = 1 To 400000
If InStr(Cells(1, 1), "CS") Then
End If
Next
MsgBox "Fertig"
End Sub
Public Sub schneller()
Dim lngA As Long
For lngA = 1 To 400000
If Mid(Cells(1, 1), 1, 2) = "CS" Then
End If
Next
MsgBox "Fertig"
End Sub
Ich schätze so ca. ein Drittel schneller ist die Mid-Funktion hierbei.
Gruß Henrik
Anzeige
Letzte Erkenntnisse
13.10.2011 12:03:40
Henrik
Was vielleicht noch interessant ist:
Am langsamsten wäre die Verwendung von: Cells(1, 1).Text
viel besser: Cells(1, 1).Value
noch etwas besser aber ist: Cells(1, 1)
So jetzt aber genug dazu :-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeichen aus Zeichenkette per VBA auslesen


Schritt-für-Schritt-Anleitung

Um Zeichen aus einer Zeichenkette in Excel per VBA auszulesen, kannst Du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere und füge den folgenden VBA-Code ein:

    Public Sub ZeichenAuslesen()
       Dim strZelle As String
       strZelle = Cells(1, 1).Value ' Hier wird die Zelle angesprochen
       If Left(strZelle, 2) = "CS" Then
           MsgBox "Die Zeichenkette beginnt mit CS."
       Else
           MsgBox "Die Zeichenkette beginnt nicht mit CS."
       End If
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um das Ergebnis zu sehen.

Mit dieser Methode kannst Du das erste Zeichen aus einem String auslesen und feststellen, ob es mit einem bestimmten Wert beginnt.


Häufige Fehler und Lösungen

  • Fehler: Typen unverträglich

    • Lösung: Stelle sicher, dass die Zelle, die Du ansprichst, tatsächlich einen Textwert enthält. Verwende Cells(1, 1).Value anstelle von Cells(1, 1).Text.
  • Fehler: Objektvariable nicht festgelegt

    • Lösung: Überprüfe, ob Du die richtige Zelle ansteuerst und diese auch existiert.
  • Problem: Der Code liefert kein erwartetes Ergebnis.

    • Lösung: Stelle sicher, dass Du die If-Bedingung korrekt formuliert hast, z.B. If Left(strZelle, 2) = "CS".

Alternative Methoden

Falls Du die Zeichen aus einem String bis zu einem bestimmten Zeichen auslesen möchtest, kannst Du die InStr-Funktion nutzen:

Public Sub ZeichenBis()
    Dim strZelle As String
    strZelle = Cells(1, 1).Value
    Dim pos As Integer
    pos = InStr(strZelle, "_") ' Sucht nach dem ersten Unterstrich
    If pos > 0 Then
        MsgBox Left(strZelle, pos - 1) ' Gibt den Teilstring bis zum Unterstrich zurück
    End If
End Sub

Diese Technik ist besonders nützlich, wenn Du einen Teilstring ab einem bestimmten Zeichen auslesen möchtest.


Praktische Beispiele

  1. Ersten 3 Zeichen auslesen:

    Public Sub ErsteDreiZeichen()
       Dim strZelle As String
       strZelle = Cells(1, 1).Value
       MsgBox Left(strZelle, 3) ' Gibt die ersten 3 Zeichen aus
    End Sub
  2. Zeichen ab einem bestimmten Index auslesen:

    Public Sub ZeichenAbIndex()
       Dim strZelle As String
       strZelle = Cells(1, 1).Value
       MsgBox Mid(strZelle, 4) ' Gibt den Teilstring ab dem 4. Zeichen aus
    End Sub
  3. Mittlere Zeichen ausgeben:

    Wenn Du die Zeichen in der Mitte einer Zelle auslesen möchtest, kannst Du dies mit Mid tun:

    Public Sub MittlereZeichen()
       Dim strZelle As String
       strZelle = Cells(1, 1).Value
       MsgBox Mid(strZelle, 2, 3) ' Gibt 3 Zeichen ab dem 2. aus
    End Sub

Tipps für Profis

  • Verwende die InStr-Funktion, um die Position eines bestimmten Zeichens in einem String zu finden, bevor Du mit Left, Mid oder Right arbeitest.
  • Achte darauf, die Leistung zu optimieren, insbesondere bei großen Datenmengen. Die Mid-Funktion ist oft schneller als InStr in vielen Anwendungsfällen.
  • Halte Deine Variablen klar und benenne sie verständlich, um die Wartbarkeit Deines Codes zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich den ersten Buchstaben eines Strings auslesen? Du kannst die Left-Funktion verwenden, um den ersten Buchstaben auszulesen:

MsgBox Left(strZelle, 1)

2. Wie lese ich einen Teilstring aus einer Zelle in Excel VBA aus? Verwende die Mid-Funktion, um einen Teilstring aus einer Zelle auszulesen:

MsgBox Mid(strZelle, StartPos, AnzahlZeichen)

3. Kann ich mit VBA auch Zeichen in der Mitte eines Strings suchen? Ja, Du kannst die Funktion InStr nutzen, um die Position eines Zeichens in einem String zu finden und dann mit Mid den gewünschten Teilstring auslesen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige