- ベストアンサー
VBA初心者の異なるBookからの検索に関する質問
- VBA初心者が異なるBookからの検索方法について相談しています。集計ファイルのセルを野菜と果物ファイルから検索したいとのことです。
- 現在、Set myRng = myFLd.Find(what:=i, lookat:=xlWhole)の部分でエラーが発生しており、解決法を求めています。
- また、質問者はこの方法が正しいかどうかも知りたいとしています。アドバイスを求めています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> Selectにしたのはvalueでは指定のセルに行かないんです。 行くとか行かないとかでは無く、Selectではダメです。 これでは i は必ず True(-1) です。 また、変数や構文もおかしいです。 what:=Range(i).Value や .Activate や myRng Is Nothing や myRng.Address 以下はマクロがあるブックのアクティブシートのセル M6 にある値と部分一致するものを 果物.xls の全シートから検索して、最初に見つかったセルを表示します。 Sub Test() Dim wb1 As Workbook, ws As Worksheet, i, c i = ThisWorkbook.ActiveSheet.Cells(6, "M").Value Set wb1 = Workbooks.Open("C:\果物.xls ", UpdateLinks:=0) For Each ws In wb1.Worksheets Set c = ws.Cells.Find(what:=i, lookat:=xlPart) If Not c Is Nothing Then Exit For Next ws If Not c Is Nothing Then MsgBox "「" & i & "」 は " & wb1.Name & " " & ws.Name & "!" & _ c.Address & "にあります。" & _ vbCrLf & "内容は 「" & c.Value & "」", vbInformation Else MsgBox wb1.Name & " に対象は見つかりません。", vbCritical End If wb1.Close SaveChanges:=False End Sub
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
Excelのバージョンが不明ですが、正直かなりおかしいです。 i = Cells("3,2").Select はたぶん i = Cells(3,2).value myFLd も何もセットされてないのでまともに動かないでしょう。 Exit Sub を多用してますが、Subを抜けろって事なのでそこを通った時点で処理が終わってしまいます。 集計.xls の??シートのB3の値は、果物.xls や 野菜.xls の各シートの何処か1ヶ所にしか無いのでしょうか?
補足
回答ありがとうございます。 Selectにしたのはvalueでは指定のセルに行かないんです。 (""は気づき取りました) papayukaさんご指摘の通りmyFLd も何もセットされてないので空で検索しているみたいです。 下記のように書き直したので、もう一度見てもらえますか? i = Cells(6, "M").Select Set wb1 = Workbooks.Open("C:\果物.xls ", UpdateLinks:=0) Sheets("A商店").Select Set C = Cells.Find(what:=Range(i).Value, LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False).Activate If myRng Is Nothing Then MsgBox "ありません" Exit Sub End If MsgBox "対象" & myRng.Address End Sub
お礼
ありがとうございました。 勉強になりました。 これからも頑張って勉強します。