すべてのデータを1つの行にまとめて1つのマスターファイルに入れ替える必要があるデータを含む複数のファイルがあります。複数のファイルを開き、VBAのマスターファイルにデータをコピーするためのループを作成する
私は私が持っているコードは、これまでどんな意味がありませんので、もし、それに
を変更すること自由に感じなさい、私はこの「ループすべてのExcelファイルを見つけることができたプログラミングにおける完全なnoobのですコードは完全に正常に動作します。フォルダ内の各ファイルを個別に開き、閉じてから、次のファイルを開き、そのフォルダ内のすべてのファイルを通過するまで閉じます。
しかし、ループ内に「コピー&ペーストデータ」コードループを挿入したいと思います。だから、何が起こる必要があります、コードは、フォルダ内の "File1"を開き、コピーし、セルA4の "マスターファイル"にデータを貼り付けます。その後、 "File1"を閉じ、 "File2"を開き、セルA5の "Master File"にデータをコピーし、 "File2"を閉じます。フォルダ内のすべてのファイルが開いたり閉じたりするまで、これが繰り返されます。
これは私が今使っているコードですが、正しく動作するようにコピーと貼り付けのコードを取得することはできません。私は、コードが現在どのファイルであるかを知り、貼り付けるマスターファイルのセルのカウンタを設定するところで、ループを設定する方法を考え出すのに苦労しています。
Sub LLoopAllExcelFilesInFolder()
'PURPOSE: To loop through all Excel files in a user specified folder and perform a set task on them
'SOURCE: www.TheSpreadsheetGuru.com
Dim wb As Workbook
Dim myPath As String
Dim myFile As String
Dim myExtension As String
Dim FldrPicker As FileDialog
'Optimize Macro Speed
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'Retrieve Target Folder Path From User
Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
With FldrPicker
.Title = "March"
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myPath = .SelectedItems(1) & "\"
End With
'In Case of Cancelhow
NextCode:
myPath = myPath
If myPath = "" Then GoTo ResetSettings
'Target File Extension (must include wildcard "*")
myExtension = "*.xlsx"
'Target Path with Ending Extention
myFile = Dir(myPath & myExtension)
'Loop through each Excel file in folder
Do While myFile <> ""
'Set variable equal to opened workbook
Set wb = Workbooks.Open(Filename:=myPath & myFile)
'THIS IS MY COPY AND PASTE CODE (DOESN'T WORK)
Dim row As Integer
While row = 4
Workbooks("Filename:=myPath & myFile").Worksheets("Resin Log").cell("I5") = Workbooks("Workbook1.xlsm").Worksheets("Sheet1").Range("A" & row).Value
Next row
'Save and Close Workbook
wb.Close SaveChanges:=False
'Get next file name
myFile = Dir
Loop
'Message Box when tasks are completed
MsgBox "Task Complete!"
ResetSettings:
'Reset Macro Optimization Settings
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
コードを入力しないとうまくいくとは言い難い... – findwindow
また、SOやGoogleを検索すると、この正確なコードがどこかに見つかるはずです。これは非常に一般的な作業です - 少し深く検索することを提案する –
申し訳ありませんが、コピーと貼り付けのコードを追加する必要があります。私はGoogleを見てみてみましたが、いずれも私の場合は動作しません。コードは、現在のファイルを開き、特定のセルからデータをコピーして、それをマスターファイルに貼り付ける必要があります。たとえば、 "File1"を開き、セル "C1"をコピーし、セル "A4"の "Master File"にペーストし、 "File1"を閉じます。次に "File2"を開き、 "C1"をコピーし、 "A5"の "Master File"にペーストし、 "File2"を閉じます。次に、 "File3"を開き、 "C1"をコピーし、それをセル "A6"のマスターファイルに貼り付け、 "File3"を閉じます。そうですね... – Sharkywang