Ich habe eine Eingabe wie folgt aus:VBA: Suchen, Speichern und ersetzen durch Reihen entsprechend den Bedingungen
gen,N,,,GONGD,,,N,,,KL,0007bd,,,,,,,,TAK,
gen,N,,,RATEC,,,N,,,KP,0007bc,,,,,,,,TAZ,
kap,N,,,EBFWE,N,,,,,,,,,KP,002bd4,,,KP,123000,,,,,N,,,,P
kap,N,,,ST,WEIT,E3,EBFWEI,,,KP,002bd2,N,,,,,,KP,002bd3,,,,,,,Z,MG00,,,,,N,,,,P
Ich habe einen Code wie folgt:
Sub Find()
Dim rFoundAddress As Range
Dim sFirstAddress As String
Dim x As Long
With ThisWorkbook.Worksheets("Sheet1").Columns(1)
Set rFoundAddress = .Find("kap,*", LookIn:=xlValues, LookAt:=xlWhole)
If Not rFoundAddress Is Nothing Then
sFirstAddress = rFoundAddress.Address
Do
Dim WrdArray() As String
Dim text_string As String
Dim i As String
Dim k As String
Dim num As Long
text_string = rFoundAddress
WrdArray() = Split(text_string, "KP,")
i = Left(WrdArray(1), 6)
k = Left(WrdArray(2), 6)
Columns("A").Replace What:=i, _
Replacement:=k, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Set rFoundAddress = .FindNext(rFoundAddress)
Loop While Not rFoundAddress Is Nothing And _
rFoundAddress.Address <> sFirstAddress
End If
End With
End Sub
Was ich zu tun versuchen: Finden Sie alle Zeilen beginnend mit "kap" und speichern Sie 6 Zeichen/int nach dem ersten "KP" als i und 6 Zeichen/int nach dem zweiten "KP" als k. Suchen Sie dann den gesamten Datensatz (Hunderte von Zeilen in Spalte A), wenn sie den String i enthalten, und falls ja, ersetzen Sie ihn dann durch den String k. Und dies zu wiederholen. So wird es mit einer anderen Zeile, die mit "kap" beginnt, dasselbe tun. Der Code gibt mir eine Fehlermeldung: Subscript außerhalb des Bereichs, wenn es zum zweiten Mal zu "Spalten (" A ") ..." kommt. Kannst du mir bitte helfen?
DANKE IM VORAUS
Ja, wir können Ihnen helfen, aber das ist eine Erweiterung von [Ihrem Beitrag von gestern] (https://stackoverflow.com/questions/40508377/vba-search-for-value-in-a-column - nach-spezifischem Muster), bitte verschiebe deine Änderungen dorthin. Vielen Dank. –
@PierreChevallier Hallo! Was ist der übliche Weg dies zu tun? Bearbeite einfach meine Frage von gestern mit dieser? Oder als neuer Kommentar oder wie? Vielen Dank –
Kommentieren Sie Ihren vorherigen Beitrag mit der Frage, was ist der Fehler, den Sie bekommen, wenn es von der Antwort eines Benutzers zur Verfügung gestellt wird, antworten Sie im Kommentarbereich des Benutzers, damit er/sie Ihnen helfen kann. –