列Fのデータのワイルドカードとして「*」を使用しようとしています。すべてのデータは、「Pie **」と同じ形式および長さ"*"VBAは、類似のテキストを含む他の単語を置き換えずにテキストを置き換えます。
例(0-9)を表す:Pie22、Pie71、Pie15、Hot22、Hot41、Hot98
私は以下のコードをしようとすると、私はCoffeeXXは、検索と置換「ホットされている問題に遭遇"" hotdog "で" chickendog "になります。
これを修正して、.findがテキストを含むものを選択するのではなく、ワイルドカードを表示するようにしましたか?
Set PieXX = Columns("F").Find(What:="Pie**", Lookin:=xlvalues)
If not PieXX is nothing then
Columns("F").Replace What:"Pie**", replacement:="Hotdog", _
SearchOrder:=xlbyrows, Matchcase:=False, SearchFormat:=False, Replaceformat:=false
End If
Set CoffeeXX = Columns("F").Find(What:="Hot**", Lookin:=xlvalues)
If not CoffeeXX is nothing then
Columns("F").Replace What:"Hot**", replacement:="Chicken", _
SearchOrder:=xlbyrows, Matchcase:=False, SearchFormat:=False, Replaceformat:=false
End If
テストされていない私はあなたが(1文字に一致) '?'ワイルドカードではなく、(複数の文字にマッチする)、 '*'ワイルドカードをしたいと思います。 '*'が 'Find'で許可されていれば'? 'も許されると私は推測しています。 – YowE3K
'cell.value like pie 'の範囲のすべてのセルに対してこれをループで実行します。 cell.Replace "pie"、 "hi"、LookAt:= xlPart'となります。これは、セル内のテキストを "pie"に続けて2文字だけ置き換え、テキストの "pie"部分を置き換えるだけです。これがあなたが望むものだと思いますか? – garbb
さて、私が誤ってコメントの "upvote"を3回クリックするとアップヴォートがカウントされず、再びアップに投票できないことが分かりました。 (愚かな)何とか、@ + 1 ++から@ YowE3Kと言いました。あなたの声明は 'ワイルドカードが何かを拾うのではなく、ワイルドカードを見る 'というのは、ワイルドカードが何をしているのかというと自己矛盾しています。 ["VBA文字列比較で使用されるワイルドカード文字"(http://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/wildcard-characters-used-in-string)の基本事項は次のとおりです。 - 比較)。 – ashleedawg