Anzeige
Archiv - Navigation
1188to1192
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
Inhaltsverzeichnis

.find mit zeichenkette

.find mit zeichenkette
Detlef
Hallo excel-freunde;
ich habe eine tabelle mit ca 150.000 zeilen die jeweils in einer Spalte (wie spalte1) mit mehreren wörtern je zelle gefüllt ist; aus den spalten 2 oder 3 bilde ich zeichenketten
zeichenkette1=wort2,wort1,wort5
diese zeichenkette möchte ich mit der Find-Methode abfragen
meine Idee: set zk =.find(zeichenkette1)
wenn nun auch nur eins der wörter in der zelle vorhanden ist soll diese gekennzeichnet werden
meine frage ist: geht das mit der Find-Methode überhaupt?
spalte1 spalte2 spalte3
zeile1 wort1; wort2 wort2 wort3
zeile2 wort2; wort3 wort1 wort4
zeile3 wort4 wort5
zeile4 wort1; wort5
vielen dank und gruß detlef

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

Betreff
Benutzer
Anzeige
AW: .find mit zeichenkette
13.12.2010 20:55:25
Lutz
Hallo Detlef,
hier mal ein Vorschlag: Wörter werden aus Spalten 1, 2, 3 der gleichen Zeile zusammengesetzt.
Wenn in einer der Zellen "Test" vorhanden ist wird in Spalte A die Zelle markiert.
Sub zeichenkette()
Dim rng1 As Range
Dim lRow As Long
Dim lngz1 As Long
Dim str1 As String
With Worksheets(1)
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
For lngz1 = 1 To lRow
str1 = .Cells(lngz1, 1).Value & .Cells(lngz1, 2) & .Cells(lngz1, 3)
If UCase(str1) Like UCase("*Test*") Then .Cells(lngz1, 1).Interior.ColorIndex = 3
Next
End With
End Sub
M.f.G.
Lutz
Anzeige
AW: .find mit zeichenkette
13.12.2010 21:01:37
Detlef
danke lutz;
aber bei 150.000 zeilen dauert das bestimmt sehr lange deshalb wollte ich das irgendwie mit der schnellen find-methode lösen
AW: .find mit zeichenkette
13.12.2010 21:33:42
Lutz
Hallo Detlef,
habe den Code noch etwas erweitert, Laufzeit auf meinem Rechner ca. 13 Sekunden bei 150.000 Datensätzen.
Ist das OK?
Option Explicit
Dim AppCalc
Dim AppScreen
Dim AppEvents
Dim lRow As Long
Dim lngz1 As Long
Dim str1 As String
Sub zeichenkette()
Call speed_ein
With Worksheets(1)
lRow = .Cells(Rows.Count, 1).End(xlUp).Row
For lngz1 = 1 To lRow
str1 = .Cells(lngz1, 1) & .Cells(lngz1, 2) & .Cells(lngz1, 3)
If UCase(str1) Like UCase("*Test*") Then .Cells(lngz1, 1).Interior.ColorIndex = 3
Next
End With
Call Speed_aus
End Sub

'
Function speed_ein()
With Application
'Einstellungen speichern
AppCalc = .Calculation
AppScreen = .ScreenUpdating
AppEvents = .EnableEvents
'Angezogene Bremsen lösen
.Calculation = xlCalculationManual 'Berechnung auf manuell
.ScreenUpdating = False 'Bildschirmaktualisierung aus
.EnableEvents = False 'Ereignismakros abschalten
End With
End Function

'
Function Speed_aus()
With Application
.Calculation = AppCalc
.ScreenUpdating = AppScreen
.EnableEvents = AppEvents
End With
End Function
M.f.G.
Lutz
Anzeige
AW: .find mit zeichenkette
13.12.2010 21:43:27
Peter
Hallo Detlef,
Du kannst bei der Find-Methode doch mit LookAt:=xlPart suchen, dann werden auch Text-Teile gefunden.
Gruß Peter
AW: .find mit zeichenkette
14.12.2010 19:24:29
Detlef
Danke Peter;
ich mich wohl etwas ungeschickt ausgedrückt; ich möchte das jedes einzelne wort der zeichenkette für sich gefunden wird; wenn also in der zelle "wort1; wort2" steht soll sowohl wort1 und auch wort2 jeweils als eigenständiges wort gefunden werden
Gruß Detlef
Das wdn sie mit xlPart auch! Gruß owT
16.12.2010 19:23:28
Luc:-?
:-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige