Я хочу ускорить мой код. Мой код состоит из двойного цикла, изначально циклически проходящего по заголовкам главной таблицы, за которым следует цикл (вложенный) по исходному массиву для вставки исходных данных всякий раз, когда совпадают главный и исходный заголовки (порядок столбцов исходного массива время от времени меняется ) Мой код ATM импортирует 1000 строк данных в 113 столбцах за 8 секунд.
Моя идея для оптимизации кода заключается в том, чтобы удалить соответствующий столбец массива во вложенном цикле после наложения значений, таким образом уменьшая количество заголовков массива для поиска для каждого успешного взаимодействия цикла. Это возможно? это заставит мой код работать быстрее?
Я зашел на форум и подумал о том, чтобы переопределить мой массив, но диапазон моего массива объявлен как ...
SourceWB.Sheets(1).UsedRange
... и мне интересно, как можно исключить заголовок массива каждый раз, когда цикл успешно совпадает с заголовками.
'Loop through master table headers
For x = 1 To MasterTable.HeaderRowRange.Count
'Loop through array headers and copy values to master
For i = LBound(ArrImport, 2) To UBound(ArrImport, 2)
If MasterTable.Range(1, x).Value = ArrImport(1, i) Then
MainWB.Sheets("Brdx").Range(Cells(h, x).Address, Cells(h + SourceTable.ListRows.Count - 1, x).Address).Value = _
SourceWB.Sheets(1).Range(SourceTable.ListColumns(i).DataBodyRange.Address).Value
Exit For
End If
Next i
Next x
Заранее спасибо