У меня есть макрос для объединения данных из 2 разных таблиц в 14 разных книгах, tblstaff и tblwage. В настоящее время код работает следующим образом:
- Открытый исходный код WB
- копировать ListObject.DataBodyRange из каждого
- PasteSpecial (xlvalues) в консолидированный ListObject.DataBodyRange
- Близкий источник WB
- Следующий источник WB
Мой вопрос: Это самый эффективный способ сделать это? Я не очень знаком с массивами в VBA, но мне было интересно, смогу ли я сделать то же самое, создав два двухмерных массива (персонал и зарплата) и считав каждую таблицу в них, вставив окончательный / консолидированный массив в конце цикла. Заранее спасибо!
Редактировать: Предполагая, что массивы здесь более эффективны, как мне создать и переопределить 2d массив, считывая каждую новую таблицу в него? Вероятно, можно с уверенностью сказать, что есть ошибки с ниже:
Set MarRange = WBMaster.Sheets("Dashboard").Range("marcirc,mar8a")
arraysize = 0
ReDim myArray(0 To 0)
For Each MarCell In MarRange
marfile = WBMaster.Sheets("Dashboard").Range("mardir").Value & MarCell.Value
Application.StatusBar = "Importing data from " & marfile
Workbooks.Open marfile, True, True
Set WBMar = ActiveWorkbook
ReDim Preserve myArray(arraysize) As Variant
myArray = WBMar.Sheets("Staffing Details").ListObjects(1).DataBodyRange.Value
arraysize = arraysize + 1
Next MarCell
End Sub