这看起来有点复杂,所以如果我需要更清楚,请告诉我。
我从一个部门收到约20份报告,我负责将每份报告中特定工作表的数据合并到一个主文件中。所有报告都完全相同,数据范围设置得非常多。我对VBA比较陌生,但我能够通过研究将代码拼凑起来,使用循环将所有数据复制并粘贴到新工作簿中。但是,如果我可以将这些数据直接放入报告模板中,那将是理想的。这是我需要帮助的地方。模板的格式不理想 - 我的标题不会在A25开始,并且底部有总计标签和说明,所以我不能将值放在最后一个空行中。< / p>
我想弄清楚如何确保我从第一张工作表中获取的数据放入A26中,并将以下工作表中的数据放入下一个可用单元格中。
以下是我目前的代码。我一般都明白什么意思,但请记住我是一个VBA菜鸟......所以要好好:)
Sub MergeData()
Dim FileName As String, FilePath As String, FolderPath As String
Dim LastCell As Range
With ThisWorkbook.Worksheets("Sheet1")
Set LastCell = .Cells(.Rows.Count, 1)
End With
FolderPath = "C:\Desktop" 'changed for privacy
FilePath = FolderPath & "*.xls*"
FileName = Dir(FilePath)
Do While FileName <> ""
With Workbooks.Open(FolderPath & FileName)
Worksheets("SBP WIP").Range("A26:AK336").Copy
LastCell.End(xlUp).Offset(1).PasteSpecial xlPasteValues
ActiveCell.Copy
.Close False
End With
FileName = Dir
Loop
End Sub
谢谢!
答案 0 :(得分:0)
在您的第一个With-End With块中,只需添加一行
With ThisWorkbook.Worksheets("Sheet1")
.Range("A25").Value = "X" ‘ make sure to hit row 25 in subsequent “xlUps”
Set LastCell = .Cells(.Rows.Count, 1)
End With
在宏观结束之前添加:
ThisWorkbook.Worksheets("Sheet1").Range("A25").ClearContents