С добрым днем! Нужна помощь специалистов, кто сталкивался или может помочь решить проблему с очень медленным выполнением кода. Общая задача такая - при выборе галкой комплектующего показываются его параметры, при снятии галки - скрываются. Реализовал через заполнение по формуле каждой строчки столбца "A", если в ячейке значение "2", то она скрывается, если нет, то отображается. В оригинале файла все данные заполняются по формулам, комплектующих не 4 а 70, параметров у каждого комплектующего по 20. Короче все настолько жутко медленно работает, что боишься что-то лишнее нажать, потому что обработка уходит в цикл. Пожалуйста, помогите, подскажите, может быть я выбрал не верную методику, может из-за того, что в столбце "А" формулы и при каждом движении формулы пересчитываются заставляя пробегать цикл скрытия строк по несколько раз? Очень жду Вашей помощи.
Использован код:
Использован код:
Код |
---|
Private Sub Worksheet_Calculate() Dim rngRows As Range Dim rngSrc As Range Dim arr() Application.EnableEvents = False PosStr = Cells.SpecialCells(xlCellTypeLastCell).Row Set rngSrc = Cells(1, 1).Resize(PosStr) rngSrc.EntireRow.Hidden = False arr = rngSrc.Value For r = 1 To PosStr If arr(r, 1) = 2 Then If Not rngRows Is Nothing Then Set rngRows = Union(rngRows, Rows(r)) Else Set rngRows = Rows(r) End If 'Not rngRows Is Nothing End If 'arr(i, 1) = 2 Next If Not rngRows Is Nothing Then rngRows.EntireRow.Hidden = True Application.EnableEvents = True End Sub |