65670


### 前提・実現したいこと

いつもありがとうございます。  
VBAでエクセルの勤務表から勤務日等を抽出し、別のソフトウェアに読み込ませる転換マクロツールを作っています。  
以下のVBAを実行したところ、1回目は正常に動作するのですが、2回目以降、初回に読み込んだものと違う階層のエクセルファイルを読み込もうとすると、以下のエラーメッセージが再現性ありで発生します。

### 発生している問題・エラーメッセージ

[code]

    実行時エラー'91'
    オブジェクト変数またはWithブロック変数が設定されていません。
    
    
[/code]

### 該当のソースコード

[code]

    Private Sub btnGetFilePath() 'ファイル選択ダイアログモジュール
    
    Dim fType As Variant
    Dim fPath As Variant
    
    '選択できるファイルの種類はすべてのファイル
    fType = ""
    
    'ファイル参照ダイアログの表示
    fPath = Application.GetOpenFilename(fType, , "") 'fType = fPath。
    
    If fPath = False Then
    'ダイアログでキャンセルボタンが押された場合は処理を終了します
    End
    End If
    
    Dim Target As Workbook 'コンバートモジュール
    Set Target = Workbooks.Open(fPath)
    
    'これをセル抜き出しから数値抜出に変更⇔循環小数エラーの解決。
    Target.Sheets(1).Range("G2").Copy ThisWorkbook.Sheets(2).Range("A2")
    Target.Sheets(1).Range("H2").Copy ThisWorkbook.Sheets(2).Range("A3")
    
    End Sub
    
[/code]

### 試したこと

前回質問したと同一のVBAですが、不要な記述を削除して整形しました。  
今回のエラーの再現性から、"1回目にエクセルファイルを開いたときにどこかに値を取得して"しまっていて、"2回目以降、その1回目に取得したパスの値と違う"ことが"実行時エラー'91'"の原因なのではと考えました。  
すると例えば、23行End
Subの真上に〇〇.Clearと処理完了時に値をクリアする命令文を入れれば解決するのかと思い、該当する記述を調べましたがわかりませんでした。もしおわかりになればお願いします。

### 補足情報（FW/ツールのバージョンなど）

Excle2016


CC BY-SA 4.0
2020-04-16T02:42:26.043
65662
2020-04-16T05:46:08.293
38336
question
vba excel
VBA 実行時エラー'91'の解決法(2)


別サイトから回答を頂き、主としてTarget.Sheets(1).Range("G2").Copy
ThisWorkbook.Sheets(2).Range("A2")以下の後半に、開いたブックを逐次閉じて、変数開放してNothingしクリアするコードを追加した所解決しました。


CC BY-SA 4.0
2020-04-16T05:46:08.293
65670
2020-04-16T05:46:08.293
38336
65662
answer