У меня есть 5 человек, каждый из которых поддерживает свой собственный файл Excel. Все файлы имеют вкладку, которая мне нужна, с той же структурой данных (столбцы) и более 20 000 строк в каждой. Мне нужно вытащить эту вкладку из каждого листа, а не из других вкладок, которые у них могут быть, в основной лист.
Для этого я создал основную рабочую книгу и добавил ссылку на данные для каждой из отдельных рабочих книг, а также создал вкладку, извлекающую нужные данные из отдельных рабочих книг. Затем я использую приведенный ниже скрипт VBA для создания главной вкладки, которая объединяет все данные из моих созданных вкладок. Если это имеет значение, все эти файлы размещаются как документы в SharePoint.
Sub Master()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "Master"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
Мой вопрос в два раза.
Во-первых, есть ли лучший способ сделать это с меньшими накладными расходами? У нас 40 столбцов и более 100 000 рядов, поэтому лист движется со скоростью улитки и регулярно фиксируется. (мы создаем решение не от Excel, но нам нужно, чтобы это работало, пока это не будет сделано)
Во-вторых, есть ли способ, которым я могу отредактировать приведенный выше скрипт в 1. Продолжить обновление созданного листа? И 2. исключить определенные вкладки на моем листе, например, с именами reports
и dashboard
?