Ich habe in einer Tabelle eine Spalte mit Erläuterungen, aus der ich (als Basis für eine Auswahlliste) einen Wortindex erstellen möchte.
Mein bisheriger Code tut eigentlich prinzipiell schon, was er soll:
Option Explicit
Sub Built_Index()
Dim Inhalt(1 To 999) As String
Dim i As Integer, j As Integer, k As Integer
Dim LZ1 As Integer, LZ2 As Integer, Zähler As Integer
j = 1
GetMoreSpeed True
For i = 2 To 241
Inhalt(j) = Worksheets("PL").Cells(i, 11)
If Inhalt(j) "" Then
Worksheets("Tabelle1").Cells(i, 1) = Inhalt(j)
Inhalt(j) = Replace(Inhalt(j), ",", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "(", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), ")", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "/", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "-", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), ":", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "&", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), ";", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "?", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "!", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), ".", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "+", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "=", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), "", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), ">", " ", 1, -1, 1)
Inhalt(j) = Replace(Inhalt(j), " 0
Zähler = Zähler + 1
.Cells(Zähler, 3) = Mid(Inhalt(k), LZ1 + 1, LZ2 - LZ1)
LZ1 = InStr(LZ1 + 1, Inhalt(k), " ", vbTextCompare)
LZ2 = InStr(LZ2 + 1, Inhalt(k), " ", vbTextCompare)
If LZ2 = 0 And LZ1 0 Then
LZ2 = Len(Inhalt(k))
End If
Wend
End If
End If
Next
End With
GetMoreSpeed False
End Sub
Jetzt sind in der Wortliste aber etliche Einträge, die ich eliminieren möchte, z. Bsp. Artikel, Verben und andere unwichtige Wörter. Diese würde ich in einer zweiten (manuell gepflegten) Liste hinterlegen. Nun sollte mein Code vor jedem Worteintrag in dieser Liste prüfen ob das Wort dort gelistet ist und dann ggf. überspringen.Ich hab aber nicht so richtig eine Idee, wie man das innerhalb des bestehenden Codes integriert. Meine Lösung wäre, dass ich die fertige Liste nochmal durchgehe, was aber natürlich ziemlich redundant ist und Performance kostet.
Vielleicht hat jemand eine Anregung, wie ich da ran gehen könnte. Auch für Optimierungsvorschläge für den bisherigen Code bin ich auf jeden Fall offen.
Gruß
David