Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
220to224
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spaltenvergleich mit allen Zeichen

Spaltenvergleich mit allen Zeichen
22.02.2003 15:31:06
Michael
Hallo zusammen!

Ich möchte zwei Spalten (A & B) vergleichen und in Spalte C die Übereinstimmungen sehen. Dazu habe ich hier folgenden Beitrag gefunden (Danke Regina!):

Sub Vergleichen()
Dim var As Variant
Dim iRow As Integer, iRowT As Integer
iRow = 1
Do Until IsEmpty(Cells(iRow, 1))
var = Application.Match(Cells(iRow, 1), Columns(2), 0)
If Not IsError(var) Then
iRowT = iRowT + 1
Cells(iRowT, 3) = Cells(iRow, 1)
End If
iRow = iRow + 1
Loop
End Sub

Das Ganze funktioniert natürlich nur für den Datentyp Integer, ist aber sonst genau das, was ich benötige.

Nun meine Frage: Welchen Datentyp muß ich wählen, um neben Zahlen auch Text mit Sonderzeichen vergleichen zu können?
Sorry, das ist bestimmt 'ne einfache Frage für die Cracks, aber eben nicht für mich.

Schon mal Vielen Dank im voraus!

Gruß,
Michael

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Spaltenvergleich mit allen Zeichen
22.02.2003 15:52:58
gordon

Hallo Michael,

hast Du es überhaupt mal probiert ? Entweder stehe ich gerade 'auf dem Schlauch', aber m.E. wird hier nur die match-Funktion (als Excel-Funktion: VERGLEICH) verwendet, und die vergleicht alle Werte, also auch Texte. Die integer-Variablen sind nur zum Durchlaufen der Zeilen.

Gruß
gordon

?
22.02.2003 16:18:48
Ramses

Hallo Michael,

das kann gar nicht gehen, weil Application.Match kein zulässiges Objekt ist.
Wenn schon muss es heissen

var = Application.Worksheetfunction.Match(Cells(iRow, 1), Columns(2), 0)

Wenn allerdings kein entsprechender Wert gefunden wird, liefert die Abfrage einen Laufzeit Fehler den du erst in der nächsten Zeile auffangen willst,.... aber nicht kannst.

Da muss in der Zeile vorher

On Error Resume Next

stehen. Dann musst du die Variable allerdings auf den Inhalt und nicht auf den Fehlerwert Abfragen.

Ich bin im übrigen erstaunt, dass du als Anfänger diesen Code so gut interpretieren kannst, dass du gleich siehst ob der Code deine Bedürfnisee erfüllt ;-)

Gruss Rainer


Anzeige
?
22.02.2003 16:18:49
Ramses

Hallo Michael,

das kann gar nicht gehen, weil Application.Match kein zulässiges Objekt ist.
Wenn schon muss es heissen

var = Application.Worksheetfunction.Match(Cells(iRow, 1), Columns(2), 0)

Wenn allerdings kein entsprechender Wert gefunden wird, liefert die Abfrage einen Laufzeit Fehler den du erst in der nächsten Zeile auffangen willst,.... aber nicht kannst.

Da muss in der Zeile vorher

On Error Resume Next

stehen. Dann musst du die Variable allerdings auf den Inhalt und nicht auf den Fehlerwert Abfragen.

Ich bin im übrigen erstaunt, dass du als Anfänger diesen Code so gut interpretieren kannst, dass du gleich siehst ob der Code deine Bedürfnisee erfüllt ;-)

Gruss Rainer


Anzeige
Danke gordon & Ramses...
22.02.2003 17:43:25
Michael

Der Code funzt jetzt tatsächlich, vorher bekam ich wirklich nur die übereinstimmenden Zahlen angezeigt, nicht aber den übereinstimmenden Text mit Sonderzeichen.

Ich weiß nicht genau, warum es jetzt mit allen Zeichen geht, aber ich habe die Einträge in meiner Testdatei laufend verändert, um zum Ziel zu kommen. Bestimmt lag's daran. Bin gespannt, ob's Montag mit den echten Daten auch klappt.

Nochmals Vielen Dank für Eure/Ihre Mühe!!
Klasse Forum!

Gruß,
Michael



Re: Spaltenvergleich mit allen Zeichen
22.02.2003 17:51:30
Ralf Sögel

versuchs mal so:
Sub Vergleichen()
Dim var As Variant
Dim lRow As Long, lRowT As Long
lRow = 1
Do Until IsEmpty(Cells(lRow, 1))
On Error Resume Next
var = Application.Match(Cells(lRow, 1), Columns(2), 0)
If Not Err Then
lRowT = lRowT + 1
Cells(lRowT, 3) = Cells(lRow, 2)
End If
lRow = lRow + 1
Loop
End Sub


Anzeige
Re: Spaltenvergleich mit allen Zeichen
22.02.2003 21:24:28
Michael

Danke Ralf!
Aber wie ich unten schon geantwortet habe, der Original-Code funktioniert super, war mein Fehler. :(
Weil unsere Antworten so zeitnah lagen, hattest Du's vermutlich noch nicht gelesen.

Vielen Dank für Deine Mühe!! Much appreciated.

Gruß,
Michael


Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige