データの移行ツールを作成途中で、詰まってしまいました。
以下、Findのところで躓いておりますので、IF文は未完状態ですが
解決方法を教えていただきたいです。
IF文の中の[Workbooks(QT_DataFile).Worksheets...]の行でエラーになります。
FINDの構文的に間違っていないように思うのですが、実際エラーが出てしまいます。
【やりたいこと】
任意の文字列を[QNumber]に代入しているので、それを指定シート内から検索したい(そして未記載ですが、そのあとにセルのアドレスを取得して…と続く予定です)。
【エラー】
実行時エラー '9':
インデックスが有効範囲にありません
【コード】
Option Explicit Sub SelectOutput() Dim QT_DataFile As String: QT_DataFile = "xxx\xxxx\xxxxx\データベース.xlsx" Dim GetNo As String Dim QNumber As String Dim SelectFile As String '任意の[QT No.]を取得する GetNo = ThisWorkbook.Worksheets("Data Migration App").Range("N10").Value 'QT No.を完成させる QNumber = "QT-" & GetNo '移行先ファイルを選択する(データベース→選択ファイル) MsgBox "移行先のファイルを選択してください" SelectFile = Application.GetOpenFilename() Workbooks.Open (SelectFile) '選択ファイルによって処置を分岐 If InStr(SelectFile, "【QT管理票 緊急対応報告書】") > 0 Then Workbooks(QT_DataFile).Worksheets("入力").Range("B:B").Find(QNumber).Select ・・・・・ '←は省略で質問文のために敢えて書いてます End If End Sub
このエラーに対して、どのような調査・対応を実施されたのでしょうか?
Workbooks(QT_DataFile) か Worksheets("入力") に問題があるように思います。
・このマクロを実行する際に Workbooks(QT_DataFile) は開いていますか?
・Workbooks(QT_DataFile).Worksheets("入力")は存在していますか?
・ちなみにQT_DataFileがファイルパスになっているので、開いているつもりであっても Workbooks(QT_DataFile) はエラーになります。
修正依頼いただきありがとうございます。
コードの途中で、[QT_DataFile]を定義しなおし、対象ファイルをActivateしたところ、コードが流れるようになりました。
ヒントをいただき、誠にありがとうございます。
回答1件
あなたの回答
tips
プレビュー