Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
416to420
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
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

code optimieren

code optimieren
dennis
hallo xl-freunde
ich habe in a1 eine liste mit diversen alphanumerischen zeichenfolgen.
nun will ich bei einigen zeichenfolgen in der spalte b eine 1 setzen.
bisher löse ich es so:

Sub test()
Do
If Cells(j, 1) Like "ABC *" Then
Cells(j, 2) = 1
GoTo ocl1
End If
If Cells(j, 1) Like "* AB1 *" Then
Cells(j, 2) = 1
GoTo ocl1
End If
If Cells(j, 1) Like "* CG2 *" Then
Cells(j, 2) = 1
GoTo ocl1
End If
If Cells(j, 1) Like "EHH *" Then
Cells(j, 2) = 1
GoTo ocl1
End If
ocl1:
j=j+1
Loop
End Sub

nun meine genaue frage:
ich teste ja immer nur die aktuelle zelle und vergleiche, ob diese zelle eine bestimmte zeichenfolge enthält. dieser code ist allerdings nur ein kleiner ausschnitt. im kompletten code muss ich ca. 40 vergleiche machen. ihr könnt euch vorstellen, wie lang diese IF.... END IF sachen dann werden.
daher wollte ich wissen, ob ich es irgendwie schaffen kann, dass ich die zu vergleichenden zeichenfolgen vorher definieren kann, und diese dann einzeln in einer schleife abgearbeitet werden, so dass ich nicht für jede zeichenfolge ein neues IF.... END IF benutzen muss.
geht das ? vielen dank für eure tipps !!!
schönes wochenende,
dennis

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

Betreff
Benutzer
Anzeige
AW: code optimieren
24.04.2004 13:11:57
Björn
Hallo Dennis,
schreibe doch deine Vergleichszeichenfolgen in eine Feldvariable und lasse dann eine For-Next-Schleife über das gesamte Feld laufen und binde in diese Schleife deine If ... End If Anweisung ein.
Gruß
Björn
AW: code optimieren
WernerB.
Hallo Dennis,
was hältst Du von dieser Vorgehensweise?
Option Explicit

Sub test()
Dim s As String
Dim j As Long
Dim k As Integer
Application.ScreenUpdating = False
For j = 1 To 10
For k = 1 To 4
Select Case k
Case 1
s = "ABC *"
Case 2
s = "* AB1 *"
Case 3
s = "* CG2 *"
Case 4
s = "EHH *"
End Select
If Cells(j, 1).Text Like s Then Cells(j, 2) = 1
Next k
Next j
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.
Anzeige
Ergänzung
WernerB.

Sub test()
Dim s As String
Dim j As Long
Dim k As Integer
Application.ScreenUpdating = False
For j = 1 To 10
For k = 1 To 4
Select Case k
Case 1
s = "ABC *"
Case 2
s = "* AB1 *"
Case 3
s = "* CG2 *"
Case 4
s = "EHH *"
End Select
If Cells(j, 1).Text Like s Then
Cells(j, 2) = 1
Exit For
End If
Next k
Next j
Application.ScreenUpdating = True
End Sub

danke euch beiden! ich probiere beides aus !!!
26.04.2004 08:37:40
dennis

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige