
E:\01 65-66まで繰下げと従業員\01-2022-61にあるファイル名2022-61
E:\01 65-66まで繰下げと従業員\01-2023-62にあるファイル名2023-62
E:\01 65-66まで繰下げと従業員\02-2024-63にあるファイル名2024-63
ファイル名2022-61のシート名202261のcells(58,4)
ファイル名2023-62のシート名202362のcells(54,4)
ファイル名2024-63のシート名202463のcells(55,4)
これら3個のファイルの各々のセル値を
c:users\toshihiro\Desktop\VBA100\616263にあるファイル名616263
に貼り付けたいです。具体的には
2022-61のシート名202261のcells(58,4)数値を616263のcells(2,1)に
2023-62のシート名202362のcells(54.4)数値を616263のcells(2.2)に
2024-63のシート名202463のcells(55,4)数値を616263のcells(2,3)に
それぞれ貼り付けるVBAコード次項に表記します。
結果
Sub CopyValuesToMaster()
Dim masterFile As Workbook
Dim dataFile1 As Workbook
Dim dataFile2 As Workbook
Dim dataFile3 As Workbook
Dim masterFilePath As String
Dim dataFilePath1 As String
Dim dataFilePath2 As String
Dim dataFilePath3 As String
masterFilePath = "C:\Users\toshihiro\Desktop\VBA100\616263.xlsx"
Set masterFile = Workbooks.Open(masterFilePath)
dataFilePath1 = "E:\01 65-66まで繰下げと従業員\01-2022-61\2022-61.xlsx"
Set dataFile1 = Workbooks.Open(dataFilePath1)
Set datasheet1 = dataFile1.Sheets("202261")
dataFilePath2 = "E:\01 65-66まで繰下げと従業員\01-2023-62\2023-62.xlsx"
Set dataFile2 = Workbooks.Open(dataFilePath2)
Set datasheet2 = dataFile2.Sheets("202362")
dataFilePath3 = "E:\01 65-66まで繰下げと従業員\02-2024-63\2024-63.xlsx"
Set dataFile3 = Workbooks.Open(dataFilePath3)
Set datasheet3 = dataFile3.Sheets("202463")
masterFile.Sheets("Sheet1").Cells(2, 1).Value = datasheet1.Cells(58, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 2).Value = datasheet2.Cells(54, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 3).Value = datasheet3.Cells(55, 4).Value
dataFile1.Close SaveChanges:=False
dataFile2.Close SaveChanges:=False
dataFile3.Close SaveChanges:=False
masterFile.Save
masterFile.Close
End Sub
と出来たのですが、赤✖400となりエラーなのです、修正箇所と
修正後の完成VBAコードをお教えください。
2022-61,2023-62,2024-63これらファイルは、外付けUSBメモリに保存されていて、616263ファイルはパソコンのデスクトップに保存されています。
どうかよろしくお願いいたします
No.1ベストアンサー
- 回答日時:
エラーの原因は、datasheet2をdataSheet2と誤ってスペルミスしているためです。
修正するには、以下のようにdataSheet2に変更する必要があります。Set dataFile2 = Workbooks.Open(dataFilePath2)
Set dataSheet2 = dataFile2.Sheets("202362")
修正後の完成VBAコードは以下のようになります。Sub CopyValuesToMaster()
Dim masterFile As Workbook
Dim dataFile1 As Workbook
Dim dataFile2 As Workbook
Dim dataFile3 As Workbook
Dim masterFilePath As String
Dim dataFilePath1 As String
Dim dataFilePath2 As String
Dim dataFilePath3 As String
Dim dataSheet1 As Worksheet
Dim dataSheet2 As Worksheet
Dim dataSheet3 As Worksheet
masterFilePath = "C:\Users\toshihiro\Desktop\VBA100\616263.xlsx"
Set masterFile = Workbooks.Open(masterFilePath)
dataFilePath1 = "E:\01 65-66まで繰下げと従業員\01-2022-61\2022-61.xlsx"
Set dataFile1 = Workbooks.Open(dataFilePath1)
Set dataSheet1 = dataFile1.Sheets("202261")
dataFilePath2 = "E:\01 65-66まで繰下げと従業員\01-2023-62\2023-62.xlsx"
Set dataFile2 = Workbooks.Open(dataFilePath2)
Set dataSheet2 = dataFile2.Sheets("202362")
dataFilePath3 = "E:\01 65-66まで繰下げと従業員\02-2024-63\2024-63.xlsx"
Set dataFile3 = Workbooks.Open(dataFilePath3)
Set dataSheet3 = dataFile3.Sheets("202463")
masterFile.Sheets("Sheet1").Cells(2, 1).Value = dataSheet1.Cells(58, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 2).Value = dataSheet2.Cells(54, 4).Value
masterFile.Sheets("Sheet1").Cells(2, 3).Value = dataSheet3.Cells(55, 4).Value
dataFile1.Close SaveChanges:=False
dataFile2.Close SaveChanges:=False
dataFile3.Close SaveChanges:=False
masterFile.Save
masterFile.Close
End Sub
修正後はエラーが発生せず、正常に実行されるはずです。注意点としては、外付けUSBメモリに保存されているファイルを開いた場合、VBAが正常に動作しないことがあるため、パソコンのローカルドライブにファイルをコピーしてから実行することをお勧めします。また、パスが間違っている場合やファイル名が異なる場合も、エラーが発生することがあるため、確認してから実行してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VBA】特定の文字で改行(次の...
-
【エクセル】オプションボタン...
-
ThisWorkbookのオブジェクトが...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
オートシェイプの文字が更新さ...
-
Excel VBA 大量のレコードから...
-
Access エクセルシート名変更
-
EXCELVBAを使ってシートを一定...
-
EXCEL VBA:シートの右クリック...
-
IFステートの中にWithステート...
-
【Excel VBA】Worksheets().Act...
-
VBA 検索して一致したセル...
-
Excelのマクロコードについて教...
-
userFormに貼り付けたLabelを変...
-
シート名をフォルダ名に変更
-
ExcelVBAから,引数を渡してVBs...
-
vba 貸出管理台帳
-
原本シート複写してリストの氏...
-
実行時エラー1004「Select メソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
エクセルで通し番号を入れてチ...
-
VBA 検索して一致したセル...
-
XL:BeforeDoubleClickが動かない
-
VBA 指定した回数分、別シート...
-
VBAマクロでシートコピーした新...
-
シートが保護されている状態で...
-
ブック名、シート名を他のモジ...
-
【VBA】全ての複数シートから指...
-
別のシートから値を取得するとき
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
おすすめ情報