前提・実現したいこと
VBAでエクセルの勤務表から勤務日等を抽出し、別のソフトウェアに読み込ませる転換マクロツールを作っています。
エクセルの勤務表のシートから、VBAツールのシートに勤務日を抽出転換する機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
実行時エラー'91' オブジェクト変数またはWithブロック変数が設定されていません。
該当のソースコード
VBA
1'ファイルの選択ダイアログを表示して 2'ファイルのパスを取得します 3Private Sub btnGetFilePath() 4 5Dim fType, prompt As String 6Dim fPath As Variant 7Dim ws As Worksheet 8Set ws = Worksheets("Sheet1") 9 10'選択できるファイルの種類はすべてのファイル 11fType = "" 12 13'ダイアログのタイトルを指定 14prompt = "Excelファイルを選択して下さい" 15'ファイル参照ダイアログの表示 16fPath = Application.GetOpenFilename(fType, , prompt) 17 18If fPath = False Then 19'ダイアログでキャンセルボタンが押された場合は処理を終了します 20End 21End If 22 23'B2セルにファイル名をセット 24ws.Cells(2, 2).Value = fPath 25 26'読み込んだファイルを元して、このファイルのシート2に出力する 27'シート2をシート1と合わせて、TOTが読めるようyyyymmdd合わせる 28'数値で持ってきて、表のシート1の年月と合わせて,20200301と表示 29'シート2を保存してcsvにする 30 31Dim Target As Workbook 32Set Target = Workbooks.Open(fPath) 33ThisWorkbook.Activate 34Target.Sheets(1).Range("G2").Copy Sheets(2).Range("A2") 35Target.Sheets(1).Range("H2").Copy Sheets(2).Range("A3") 36 37ActiveWorkbook.SaveAs Filename:="C:Work\Book1.xlsm"'転換した後csvを出力保存 38 39End Sub
試したこと
デバッグのポインタが36行目のTarget.Sheets(1).Range("G2").Copy Sheets(2).Range("A2")で止まります。
調べたもののSetステートメントはついており、原因がわかりませんでした。
もしおわかりになればお願いします。
補足情報(FW/ツールのバージョンなど)
Excle2019
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/14 06:57
2020/04/14 07:02
2020/04/14 07:14