Я пытаюсь ускорить текущий процесс. У меня есть план производства с 5 неделями. Ниже приведен пример кода пользовательской формы, который я использую, чтобы определить, какие строки нужно скрыть, в зависимости от того, что пользователь хотел бы видеть (например, если у вас что-то запланировано через 4 недели и у него есть собственная строка, вы Я не хочу видеть его через 2 недели, поэтому вам нужно скрыть эту строку. Общий код ниже работает отлично, но только на моей машине, которая довольно мощная. К сожалению, у вас много пользователей с гораздо более медленными ПК, и я бы хотел изучить возможные действия, чтобы ускорить его. Я читал другие похожие темы, и одним из предложений было создать вспомогательный столбец и использовать автофильтр. Есть ли другие варианты?
Sub show2weeks()
Dim hideRange As Range
Dim myRow As Range
Dim wc As Integer
Dim wr As Range: Set wr = ThisWorkbook.Worksheets("2 week plan").Range("G4:AD4")
Dim week As String
week = "week 2" 'zmienic tutaj
Range(Cells(1, 7), Cells(1, 30)).EntireColumn.Select
Selection.EntireColumn.Hidden = False
Application.ScreenUpdating = False
wc = wr.Find(what:=week, SearchDirection:=xlPrevious, LookAt:=xlWhole, LookIn:=xlValues).Column
Application.Calculation = xlCalculationManual
Set hideRange = Sheets("2 Week plan").Range(Cells(7, 7), Cells(1000, wc)) 'you must set this to apply to the range you want (you could use active selection if you wanted)
For Each myRow In hideRange.Rows
If Application.WorksheetFunction.Sum(myRow) = 0 Then 'if the sum of the row=0 then hide
myRow.EntireRow.Hidden = True
Else
myRow.EntireRow.Hidden = False
End If
Next
Range(Cells(1, 7), Cells(1, 30)).EntireColumn.Select
Selection.EntireColumn.Hidden = False
Range(Cells(1, wc + 1), Cells(1, 30)).EntireColumn.Select
Selection.EntireColumn.Hidden = True
Application.Calculation = xlCalculationAutomatic
End Sub'''