1
これは完全に間違っていることは知っていますが、現時点ではどうしたらよいか分かりません。VBA(Microsoft Excel)は文字列で配列を置き換えます
Microsoft Excelでは、 "OldValues"文字列のすべての値を固定文字列 "NewValue"で置き換えたいとします。そんなことがあるものか?
LBoundとUboundを使用するのは間違っています。
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
ニース。関数LBoundとUboundを正しく認識していない(私が理解しているように、配列上でループを検索するために存在するのだろうか?)、どうやって動作させるのか分からなかった。 –
配列と一緒に使用すると、上下のインデックス境界を参照するので、Array( "old1"、 "old2"、 "old3")の配列では ' - LBound'は0になり、' UBound'は2 – Jordan
@MiguelRasquinho代わりに、バリアント型の変数とFor Each Loopを使用して配列を反復処理することができます。 'Dim x as Variant:OldValuesの各xに対して' –