Gizport
1 回答
0
Share (facebook)
43
view
全般

VBA マクロ 複数検索について 完全一致のつもりですが 【AB6...

VBA マクロ 複数検索について
完全一致のつもりですが
【AB6*01】で検索すると【AB6*101】までヒットしてしまいます。
他の数値(02・03・04等)でも同様です。
どこがおかしいのか、説明を入れてご教授ください -------------------------
※カテゴリーを違ってたようなので再度質問をUPしました。
元の方でコイン進呈してますので
よろしければ、こちらでご返答ください
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1260815697
--------------------------

Sub Find()
Dim FoundCell As Range
Dim cnt As Integer
Dim firstAddress As String

'検索結果の表示行番号
cnt = 2

'検索結果の表示エリアを clear
If EffectiveRow_AssingColum("J") > cnt Then
Range("J2:K" & Format(EffectiveRow_AssingColum("J"))).ClearContents
End If

Set FoundCell = Sheets("data").Columns(28).Find(Range("J1"), , LookAt:=xlWhole)
If FoundCell Is Nothing Then
Range("J" & Format(cnt)) = "No Match"
Range("K" & Format(cnt)) = "No Match"
Else
firstAddress = FoundCell.Address
Do
Range("J" & Format(cnt)) = FoundCell.Offset(0, -24)
Range("K" & Format(cnt)) = FoundCell.Offset(0, -17)
cnt = cnt + 1
Set FoundCell = Sheets("data").Columns(28).FindNext(FoundCell)
Loop While Not FoundCell Is Nothing And FoundCell.Address <> firstAddress
End If

End Sub

--------------
検索値(ワード)は500ほど(全てにアスタリスクが入ってます)
検索対象となるデータは4,000を超えますが
上記の例以外のものは全て完全一致でヒットします。
又、検索値(ワード)の○○の部分にはアルファベットの大文字が入り
数値ではなく文字列(或いは、標準)で設定しているのですが
どうにか、検索ワードを変えずに識別、或いは重複ヒットを回避する方法は無いでしょうか・・?
Yahoo!知恵袋 4863日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1260815697
こちらの回答者の言う通り、「*」の前に「~」(チルダ)を付けます。
チルダは、キーボードの「Shift」+「へ」のキーです。

>Set FoundCell = Sheets("data").Columns(28).Find(Range("J1"), , LookAt:=xlWhole)
Findの検索文字列を「Range("J1")」にしているので、「J1」のセルの値を
「AB6*01」から
「AB6~*01」にしてください。


「AB6*01」だと、「AB6aaaaaaaaaaaaaaaaaaaaaa01」や、「AB6dsfsdafasdfasdfs01」もヒットしちゃいます。

理由は、「*」が「どんな文字が何文字でも」という意味になってしまう特殊な文字だからです。

つまり、「AB6*01」は「AB6」から始まり、「01」で終われば、間に何があってもいい。という解釈になります。

この特殊な設定を一時的になくすのが、「~」(チルダ)なのです。
「~」(チルダ)の後にある特殊な文字は、特殊ではなく普通の文字だと認識させるためのものです。

この「~」(チルダ)のように、特殊な文字を普通の文字として認識させるための文字を
「エスケープシーケンス」といいます。

使う言語によってかわります。
Yahoo!知恵袋 4862日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
59
Views
質問者が納得残念ながら こちらiPhoneしか分かりません。 iPhone専用の質問カテゴリーです。
3788日前view59
全般
57
Views
質問者が納得エラーコードが書いてないので詳しくは言えませんが一般的に電圧の盛が足りないと考えられます。 下記よりコードを参考に http://freesoft.tvbok.com/tips/lga2011/oc-bsod-sheet.html
3748日前view57
全般
66
Views
質問者が納得無線LANの設定がおかしくなったのだと思います。 無線LANの設定ユーティリティにアクセスして、 11aと11g又はnと同時通信できるように変更してあげて下さい。
3762日前view66
全般
90
Views
質問者が納得電話帳は、Googleと同期しているならGoogleのアカウントを入力すれば表示されます。 表示がされない場合は、Googleが同期されていないということなのでmicroSDにバックアップして移動するか赤外線通信で移動して下さい。 アプリは、再ダウンロードするしかないです。 アプリは、microSDに移動が出来る物と出来ない物があります。 microSDに移動が出来ないと新しいスマホには移動が出来ません。 Googleを同期することで101Kでダウンロードしたアプリが201Kのマイアプリに表示されます。 マ...
3901日前view90
全般
39
Views
質問者が納得その程度の電圧変動なら電源ユニットが余裕で吸収してくれるはずだけど… というか、電圧変動が問題ならマザーボードやHDDより先に電源ユニットが壊れないとおかしいのでは?
3949日前view39

取扱説明書・マニュアル

1118view
http://help.mb.softbank.jp/.../101k_userguide.pdf
もっと見る

関連製品のQ&A