Ich weiß, das ist völlig falsch, aber im Moment weiß ich wirklich nicht, wie es geht.VBA (Microsoft Excel) ersetzen Array mit String
In Microsoft Excel möchte ich alle Werte in der Zeichenfolge "OldValues" durch eine feste Zeichenfolge "NewValue" ersetzen. Wie ist das möglich?
LBound und Ubound sind falsch zu verwenden, oder?
Sub Replace()
Dim sht As Worksheet
Dim OldValues As Variant
Dim NewValue As String
Dim x As Long
OldValue = Array("old1","old2","old3")
NewValue = "allnew!"
For x = LBound(OldValue) To UBound(NewValue)
For Each sht In ActiveWorkbook.Worksheets
sht.Cells.Replace What:=OldValue(x), Replacement:=NewValue(x), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Next sht
Next x
End Sub
Nice one. Kenne nicht richtig die Funktion LBound & Ubound (wie ich es verstehe, existieren sie, um eine Schleife zu erstellen, die auf einem Array sucht?), Also wusste ich nicht, wie man es arbeitet. –
Wenn sie mit einem Array verwendet werden, beziehen sie sich auf die oberen und unteren Indexgrenzen, also mit dem Array von 'Array (" old1 "," old2 "," old3 ")' - 'LBound' wird 0 sein und' UBound' wird sein 2 – Jordan
@MiguelRasquinho Alternativ können Sie mit einer Variablen der Typvariante und einer For Each-Schleife über ein Array iterieren. 'Dim x als Variante: Für jedes x in OldValues' –