Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Links funktion bei VBA

Links funktion bei VBA
14.05.2008 11:17:22
Köhler
Hallo,
ich würde gerne die Left funktion von Excel auch in VBA verwenden. ich möchte in folgendem Code den Inhalt zweier Zellen abgleichen, jedoch nicht komplett, sondern nur die ersten 30 Buchstaben. Wenn diese 30 Buchstaben von links gleich sind, geht es weiter im If satz...
On Error Resume Next
For i = 1 To 820
If Worksheets("data").Left(cells(i, 1), 30) = Worksheets("data").Left(cells(i, 16), 30) Then
Worksheets("data").Cells(i, 17).Copy Destination:= _
Worksheets("data").Cells(i, 1).End(xlToRight).Offset(0, 1)
'if car in column "a" is same like column "p"
'then copy column "q" values into the next free column of data range
Else
Worksheets("data").Cells(i, 16).Font.ColorIndex = 3
'if not highlight in red to attract attention
End If
Next i

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Links funktion bei VBA
14.05.2008 11:19:32
Rudolf
Hallo,
sorum:
If Left(Worksheets("data").cells(i, 1), 30) = Left(Worksheets("data").cells(i, 16), 30) Then
Gruß
Rudi

Rudi geknickt ? ;-) (owT)
14.05.2008 11:21:00
Renee

AW: Links funktion bei VBA
14.05.2008 11:47:00
Köhler
hm danke schon mal.
Seltsamerweise läuft immer "else" durch und "then" tritt nie auf, obwohl manche Zellen unterschiedlich sind.

Anzeige
AW: Links funktion bei VBA
14.05.2008 12:08:06
Renee
Hi Köhler,
Seltsam sind eher deine Definitionen und die Daten können wir von hier sowieso nicht sehen!
Die ersten 30 Zeichen der Zellen in Spalte A und Spalte P müssen jeweils genau gleich sein (Gross/Kleinschreibung, Leerstellen etc.) damit der THEN-Zweig durchlaufen wird, alle ungleichen laufen in den ELSE-Zweig!
GreetZ Renée
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Links-Funktion in VBA: So geht's!


Schritt-für-Schritt-Anleitung

Um die Left-Funktion von Excel in VBA zu verwenden, kannst du folgenden Code nutzen:

On Error Resume Next
For i = 1 To 820
    If Left(Worksheets("data").Cells(i, 1), 30) = Left(Worksheets("data").Cells(i, 16), 30) Then
        Worksheets("data").Cells(i, 17).Copy Destination:= _
        Worksheets("data").Cells(i, 1).End(xlToRight).Offset(0, 1)
    Else
        Worksheets("data").Cells(i, 16).Font.ColorIndex = 3
    End If
Next i

In diesem Beispiel wird überprüft, ob die ersten 30 Zeichen der Zellen in Spalte A und P gleich sind. Ist dies der Fall, wird der Inhalt von Zelle Q in die nächste freie Spalte kopiert. Andernfalls wird die Zelle in Spalte P rot markiert.


Häufige Fehler und Lösungen

Ein häufiger Fehler, der auftreten kann, ist, dass der Else-Zweig immer ausgeführt wird. Dies geschieht oft aufgrund von:

  • Groß-/Kleinschreibung: Achte darauf, dass die Buchstaben in beiden Zellen exakt übereinstimmen (z.B. abc !== ABC).
  • Leerzeichen: Überprüfe, ob möglicherweise zusätzliche Leerzeichen in den Zellen vorhanden sind.

Um dies zu lösen, kannst du die Trim-Funktion verwenden, um überflüssige Leerzeichen zu entfernen:

If Left(Trim(Worksheets("data").Cells(i, 1)), 30) = Left(Trim(Worksheets("data").Cells(i, 16)), 30) Then

Alternative Methoden

Falls du die Left-Funktion nicht verwenden möchtest, gibt es andere Möglichkeiten, um den gleichen Effekt zu erzielen. Eine davon ist die Verwendung von Mid in Kombination mit Len:

If Mid(Worksheets("data").Cells(i, 1), 1, 30) = Mid(Worksheets("data").Cells(i, 16), 1, 30) Then

Diese Methode kann nützlich sein, wenn du spezifische Bedingungen zur Zeichenposition benötigst.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Left-Funktion in verschiedenen Szenarien nutzen kannst:

  1. Abgleich von Produktnummern: Wenn du in deiner Datenbank Produktnummern hast, die mit den ersten 10 Zeichen identifiziert werden, könntest du den Code entsprechend anpassen.

  2. Benutzernamen verifizieren: Überprüfe, ob die ersten 15 Zeichen von zwei Benutzernamen übereinstimmen, um doppelte Anmeldungen zu vermeiden.


Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind, was die Fehlersuche erleichtert.
  • Verwende die Debug.Print-Anweisung, um Werte während der Ausführung zu überprüfen, was dir hilft, mögliche Fehlerquellen zu identifizieren.
  • Experimentiere mit vba links und vba linksbündig, um zu sehen, wie diese Funktionen deine Datenvisualisierung verbessern können.

FAQ: Häufige Fragen

1. Wie kann ich die Excel-Funktion Left in VBA verwenden?
Du kannst die Left-Funktion in VBA verwenden, indem du sie wie im obigen Beispiel anwendest. Sie funktioniert ähnlich wie in Excel.

2. Was kann ich tun, wenn der Then-Zweig nie erreicht wird?
Stelle sicher, dass die zu vergleichenden Zellen tatsächlich identisch sind, indem du Leerzeichen und Groß-/Kleinschreibung überprüfst. Verwende ggf. die Trim-Funktion.

3. Gibt es eine Alternative zur Left-Funktion in VBA?
Ja, du kannst auch die Mid-Funktion verwenden, um eine bestimmte Anzahl von Zeichen aus einer Zelle zu extrahieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige