Объединение скопированных данных в один рабочий лист
В настоящее время я использую скрипт VBA для объединения данных из нескольких листов и книг в новую рабочую книгу. В настоящее время скрипт выполняет это, но создает несколько листов в рабочей книге назначения. Возможно ли, чтобы пункт назначения был единственным листом?
Sub copydata() Dim FolderPath As String, FilePath As String, FileName As String FolderPath = "C:\attach\" FilePath = FolderPath & "*.xlsx" FileName = Dir(FilePath) Dim erow As Long, lastrow As Long, lastcolumn As Long 'loops through directory as long as it is not blank and defines files as workbooks. Do While FileName <> "" Dim wb As Workbook Set wb = Workbooks.Open(FolderPath & FileName) 'nested loop for sheets in workbooks For counter = 3 To 9 'Sheets(“Sheet1”).Select wb.Worksheets(counter).Activate lastrow = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Row lastcolumn = ActiveSheet.Cells(1, Columns.count).End(xlToLeft).Column Range(Cells(2, 1), Cells(lastrow, lastcolumn)).Copy 'Sheets("Sheet1").Select Workbooks("ZMasterFile.xlsx").Worksheets(counter).Activate erow = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row Cells(erow, 1).Select ActiveSheet.Paste Next wb.Close savechanges:=False FileName = Dir Loop erow = ActiveSheet.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row Cells(erow, 1).Select
Эта линия может вызвать у вас проблемы.
'Sheets("Sheet1").Select Workbooks("ZMasterFile.xlsx").Worksheets(counter).Activate
На линии secound вы активируете рабочий лист (счетчик)
Я думаю, вы должны поставить Worksheet («Sheet1»), если хотите, чтобы все данные находились на одном листе.
Конечно. Вероятно, лучше всего установить AddIn, который вы найдете по ссылке ниже.
http://www.rondebruin.nl/win/addins/rdbmerge.htm
Этот инструмент очень полезен! Попробуйте, и вы увидите!
Также см. Ссылку ниже. Вы увидите весь представленный там код, поэтому это отличный пример обучения.