Find でオートメーションエラー(エラー440)が出ました。
原因と対応方法をご教授下さい。
Sub ベースデータベースから情報を取得する()
Workbooks.Open "データベース.xlsxのパス"
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim i As Integer
Set wb1 = Workbooks("データベース.xlsx")
Set wb2 = ThisWorkbook
Set sh1 = wb1.Worksheets("データベース表")
Set sh2 = wb2.Worksheets("調査対象リスト")
Dim 検索対象 As String
Dim 検索結果 As Range
For i = 3 To wb2.Worksheets("調査対象リスト").Cells(Rows.Count, 1).End(xlUp).Row
検索対象 = sh2.Cells(i, 2).Value
Set 検索結果 = sh1.Cells.Find(検索対象)→→→ここでエラーが出ます
If 検索結果 Is Nothing Then
MsgBox "検索対象が見つかりませんでした"
Exit Sub
Else
Set 検索結果 = sh1.Cells.Find(検索対象).Offset(0, 13)
sh2.Cells(i, 4).Value = 検索結果
Workbooks("データベース.xlsx").Close
End If
Next i
End Sub
No.1ベストアンサー
- 回答日時:
If 文で検索対象が見つかった後、検索対象のBookを閉じてますけど、検索して見つかるのはそのシート内で1つと言う事ですか?
あと気になるのは
>Set 検索結果 = sh1.Cells.Find(検索対象)→→→ここでエラーが出ます
>Set 検索結果 = sh1.Cells.Find(検索対象).Offset(0, 13)
このOffsetをする際に再度検索をしているようですが、最初?に見つかったセルを基準としたものなのでしょうか?
仮にそうであれば2つ目は
Set 検索結果 = 検索結果.Offset(0, 13)
こうなるように思いますが。
多分検索するBookを閉じられて探せないと思われるので閉じるタイミングはループを抜けた後ではないかと。
'Workbooks("データベース.xlsx").Close
End If
Next i
Workbooks("データベース.xlsx").Close
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームの表示を追加したい 2 2023/03/26 23:18
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
エクセルでエラーが出て困っています。
Excel(エクセル)
-
エクセルVBA フォームShowでオートメーションエラー
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
-
4
Excel VBA: UserForm.Show で実行時エラー
Visual Basic(VBA)
-
5
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
6
フォントの大きさ
Visual Basic(VBA)
-
7
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
8
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
9
EXCEL VBA UserFormで困っています。
Excel(エクセル)
-
10
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
11
Excel マクロ:変数を複数使う場合
Excel(エクセル)
-
12
Excelに埋め込んだVBAのプログラムが消えた。
その他(Microsoft Office)
-
13
Excelマクロのオートメーションエラーについて
Access(アクセス)
-
14
ファイルを開かずにマクロを実行
Excel(エクセル)
-
15
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
16
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WindowsでのPythonの挙動について
-
String""から型'Double'への変...
-
UserForm1.Showでエラーになり...
-
-2147418107 (&H80010005)
-
VBAでfunctionを利用しようとし...
-
VBA データ(特定値)のある最...
-
フランスの生年月日(jj/mm/aaaa)
-
On ErrorでエラーNoが0
-
エクセル関数を教えてください
-
mailstorehomeのエクスポートで...
-
数式は残し値をクリアするマク...
-
VC++2010で作成中に特定のエラ...
-
インポート時のエラー「データ...
-
文字列内で括弧を使うには
-
【VBA】ワークブックを開く時に...
-
ExcelVBAのDoEventsによるエラー?
-
マクロで"#N/A"のエラー行を削...
-
.VBSだとADODBのプロバイダが見...
-
Excel ピボットテーブル平均・...
-
error C2664: 'LPCTSTR' に変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
String""から型'Double'への変...
-
VBAでfunctionを利用しようとし...
-
お助けください!VBAのファイル...
-
文字列内で括弧を使うには
-
実行時エラー 438 の解決策をお...
-
マクロで"#N/A"のエラー行を削...
-
On ErrorでエラーNoが0
-
エクセルVBA 「On Error GoTo...
-
VBA データ(特定値)のある最...
-
実行時エラー'-2147467259(8000...
-
【VBA】ワークブックを開く時に...
-
VBでSQL文のUPDATE構文を使った...
-
ACCESSで値を代入できないとは?
-
マクロの「SaveAs」でエラーが...
-
Excel vbaについての質問
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
「実行時エラー '3167' レコー...
-
バッチファイルで、あるスクリ...
おすすめ情報