Уважаемые форумчане, прошу подсказать каким образом возможно оптимизировать следующий алгоритм
Вопрос заключается в следующем, дальше по коду идут еще несколько алгоритмов отсеивающих лишние позиции из реестра. Если запускать алгоритм в таком виде, выполнение будет длиться годами. Во всех статьях по ускорению работы кода первым пунктом всегда идет совет, что нужно срочно убрать все селекты и переключения между страницами. Однако я ну никаким образом не могу найти иного решения для цикла фор ич, чтобы он брал данные с нужного листа без переключения на этот лист. Любые комбинации переменных выдают для i значение носинг, при переключении листа это всегда нужное значение. Молю подскажите существует ли способ производить данную операцию в фоновом режиме.
Код |
---|
ThisWorkbook.Worksheets("Заполнение реализации ХВС").Select For Each i In ThisWorkbook.Worksheets("Заполнение реализации ХВС").Range(Cells(2, 1), Cells(a, 1)) If Worksheets("Заполнение реализации ХВС").Range("O" & i) <> "Без ВО" Then ThisWorkbook.Worksheets("Заполнение реализации ГВС").Select For Each y In Worksheets("Заполнение реализации ГВС").Range(Cells(1, 1), Cells(b, 1)) If i = y Then |
Вопрос заключается в следующем, дальше по коду идут еще несколько алгоритмов отсеивающих лишние позиции из реестра. Если запускать алгоритм в таком виде, выполнение будет длиться годами. Во всех статьях по ускорению работы кода первым пунктом всегда идет совет, что нужно срочно убрать все селекты и переключения между страницами. Однако я ну никаким образом не могу найти иного решения для цикла фор ич, чтобы он брал данные с нужного листа без переключения на этот лист. Любые комбинации переменных выдают для i значение носинг, при переключении листа это всегда нужное значение. Молю подскажите существует ли способ производить данную операцию в фоновом режиме.