-1
私の仕事は、シリアル番号の特定のサブセットを取得し、置換えをして、より大きな一連のシリアル番号の代わりに&を置き換えます。私はこのマクロを実行しています:Excel VBAは先行ゼロのセルでは機能しません
Sub multiFindandReplace()
Dim myList As Range, myRange As Range, cel As Range
Set myList = Sheets("Replacement Data").Range("B2:C4246")
'two column range with find/replace pairs
Set myRange = Sheets("Raw Data").Range("B2:B20000")
'range to be searched and replace
For Each cel In myList.Columns(1).Cells
myRange.Replace What:=cel.Value, Replacement:=cel.Offset(0, 1).Value, LookAt:=xlWhole
Next cel
End Sub
このコードは先行ゼロのないエントリに対してのみ機能します。先行ゼロを維持する必要がありますが、問題は、マスターデータリストのシリアル番号がすべてゼロで始まるわけではなく、すべてが置換されるわけではなく、長さが異なることです。以下のサンプルデータのスニペットを添付しました。
Part # Full Part #
4184 004184
4444 004444
100001 00100001
100002 00100002
100003 00100003
100004 00100004
100005 00100005
100006 00100006
100007 00100007
100008 00100008
この検索/置換リストは2000行です。私は20,000項目のリストを検索し、これらの2000行を置き換える必要があります。どんな助けも大歓迎です。ありがとうございました。
あなたはmyRangeやセル画を設定していません。 –
これはすべてコードですか? '.Replace'行の最後に' Next cel'があるので、あなたはループを望んでいるようです...ループを追加するのを忘れたのでしょうか? (「MyListの各セルのために?」)編集:ああ、それはあります。あなたはVBAが必要ですか?式= =(左(A2,2)<> "00"、 "'00"&A2、 "")トリックはしませんか? – BruceWayne
完全なコードです。これは、セルに先行ゼロが含まれていない限り、私のファイル上で正しく動作します。私は、問題はコードではないと思うが、おそらく私がすべてのタイプのセルでこれを使用できるようになるExcelの追加設定ですか? – shannon