2016-03-29 5 views
0

午後:vbaワイルドカードを使用してシート内のすべてを置換してください。

私はもう一度;)。列内のすべての項目を置換しようとする別の問題に陥る。ワイルドカードが私のreplaceステートメントを呼び出す方法で動作するように見えません。おそらく誰かが私の方法で私にエラーを表示することができますか?ありがとうございました。

コード:

testname 
testName 
testNaMe 

しかし、私のデータがどのように見える場合:

teestName 
TTestname 
teesstname 

これは明らかに失敗した

Worksheets(1).Columns("B").Replace _ 
What:="testName", Replacement:="realName", _ 
SearchOrder:=xlByColumns, MatchCase:=false 

は今、これは限り私のデータがどのように見えるとして完璧に動作します。検索の実装方法にワイルドカードを使用する方法があるので、「名前」だけを検索できますか? *キャラクターは私が思うように動作していないようです(ほとんどbashユーザーです)。ありがとうございました。

Worksheets(1).Columns("B").Replace What:="*testName*", Replacement:="realName", SearchOrder:=xlByColumns, MatchCase:=false 

をそしてもちろん、あなたはまた、細胞に一致するように="testName*"または="*testName"を使用することができます。

+0

私が見た他のページは、私が達成しようとしていると信じている単純なタスクと比べて、非常に異なる、より堅牢なコードを使用しているようです。おそらく、私が使うことができる 'if'文で使われているようなもののようなものがあるでしょうか? – bluerojo

+1

What:= "testname" 'try' What:= "* testname *" ' – BruceWayne

+1

@BruceWayne私は過去30分間そのことを試してみたが、うまくいきませんでした。一度あなたが言ったら、最初に試してみました...私は元のテストで何かを見逃しているに違いありません。 – bluerojo

答えて

1

あなたは、細胞内のどこにでもをを「テスト名」を見つけるためにしようとしている場合は、両側に*ワイルドカードを追加それぞれ "testName"で始まります。

関連する問題