Hallo liebe Excel-Experten,
Ich habe ein Macro geschrieben, welches Ersetzungen laut einer Liste vornimmt. D.H. in der einen Spalte steht, was ersetzt werden soll und in der anderen Spalte steht womit es ersetzt werden soll.
Leider funktioniert in deisem Macro mein Zähler nicht, der angeben soll wie oft eine Ersetzung vorgenommen worden ist.
Hier mein Code:
Private Sub replace_Click()
'sucht in ausgewähler Datei jeweils die Einträge aus
'suchArray und ersetzt mit ersetzArray
Dim suchArray()
Dim ersetzArray()
Dim k, p As Long
Dim WS As Worksheet
Dim counter As Integer
counter = 0
arbeit.Visible = True 'arbeit ist ein bild
'suchArray füllen
For x = 2 To 9999
If IsEmpty(„D“ & x) Then
GoTo eArray
Else
ReDim Preserve suchArray(x - 1)
suchArray(x - 1) = Range(„D“ & x)
End If
Next x
'ersetzArray füllen
eArray:
For x = 2 To 9999
If IsEmpty(„E“ & x) Then
GoTo ersetzen
Else
ReDim Preserve ersetzArray(x - 1)
ersetzArray(x - 1) = Range(„E“ & x)
End If
Next x
'auf jedem sheet Änderungen vornehmen
ersetzen:
On Error GoTo ausgang
Workbooks.Open Filename:=fn 'fn ist eine globale Variable (wird
'an anderer Stelle mit Inhalt gefüllt)
For Each WS In Worksheets
For k = LBound(suchArray) To UBound(suchArray)
Call WS.UsedRange.replace(suchArray(k), ersetzArray(k), xlWhole, , False)
If replace = True Then
counter = counter + 1
End If
Next k
Next
MsgBox (counter)
arbeit.Visible = False
ausgang:
If arbeit.Visible = True Then
meldung.Text = „ERROR - file not found“
End If
End Sub
Ich hoffe jemand kann mir helfen… Ich verzweifle!
Danke
Euer Daniel