
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでfunctionを利用しようとし...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
お助けください!VBAのファイル...
-
UserForm1.Showでエラーになり...
-
マクロOn Error GoTo ErrLabel...
-
DBへのINSERT時に実行時エラー...
-
VBA 空白行の削除
-
On ErrorでエラーNoが0
-
【VB.NET】 パワポ操作を非表示で
-
HTMLソースが表示のページのも...
-
【VBA】ワークブックを開く時に...
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
Excel vbaについての質問
-
INSERT INTOステートメント構文...
-
ACCESS DAO で不要なテーブルの...
-
条件式について
-
IIS7.0上でASP.netでAD情報取得...
-
ApplicationとWorksheetFunctio...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
ApplicationとWorksheetFunctio...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
.VBSだとADODBのプロバイダが見...
-
実行時エラー'-2147467259(8000...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【VBAエラー】Nextに対するFor...
おすすめ情報