0
良い日には、フォルダに約125のスプレッドシートがあり、すべてのスプレッドシートから別のワークブックに各ファイルごとに1つのシートに貼り付けたすべてのデータを統合します。私はフォルダ内のファイルをループしていますが、実際の値ではなく数式を貼り付けています。どのように私は以下のコードでこれを行うことができますか?私はサイトを検索し、それがうまく動作するように見えるものはエラーを引き起こします。これについてのどんな助けも大いに感謝されるでしょう。例えば値はファイルvbaにループを貼り付けます
Sub LoopThroughFilesInFolder()
Dim mainwb As Workbook
Dim wb As Workbook
Dim i As Integer
Set mainwb = ThisWorkbook
mainwb.Activate
Sheets("Engine").Select
Range("a2:c500").ClearComments
Set FileSystemObj = CreateObject("Scripting.FileSystemObject")
Set FolderObj = FileSystemObj.GetFolder("C:\Desktop\Vessel folder 2016") 'Use path of the folder
For Each fileobj In FolderObj.Files 'loop through the files
If fileobj.Name <> "Bronco.xlsm" And fileobj.Name <> "~$Bronco.xlsm" And (FileSystemObj.GetExtensionName(fileobj.Path) = "xlsx" Or FileSystemObj.GetExtensionName(fileobj.Path) = "xlsm") Then
Application.DisplayAlerts = False
Set wb = Workbooks.Open(fileobj.Path)
'copy the results from the just opened wb
wb.Worksheets("ZenGarden").Select
lastcell = Range("a2:EQ5").SpecialCells(xlCellTypeLastCell).Address
Range("a2:" & lastcell).Select
Selection.Copy
'go to the mainworkbook and paste data
mainwb.Activate
Sheets("Engine").Select
If Range("a2").Value = "" Then
Range("a2").Select
Else
Range("a1").End(xlDown).Offset(1, 0).Select
End If
ActiveSheet.Paste
wb.Activate
wb.Save
wb.Close
mainwb.Activate
End If
Next fileobj
End Sub
にすばやく答えジェレミーのために多くをありがとうございました!あなたのコードをVBAに入れると、次の行にエラーが返されます:Set targetRange = targetSheet.Cells(targetSheet.Rows.Count、1).End(xlUp).Offset(1、0) –
こんにちはAndy、そこにそれぞれの答えの隣にホロのチェックボックスがあり、それはあなたにいくつかのポイントを与え、あなたの質問が答えられたことを皆に知らせる。 –
これは初心者の方に申し訳ありませんが、送信した信号にコードをどこに接続するのかわかりません。 –