Есть ли способ улучшить производительность любым значимым способом для следующего кода VBA в Excel?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Me.Range("Group1"), Target) Is Nothing Then
With wksData
.Range("Group1Column").Value = Target.Column
.Range("Group1Row").Value = Target.Row
End With
End If
End Sub
Я добавил условное форматирование, которое рассматривает именованные диапазоны Group1Column и Group1Row. Я не могу сказать, связана ли моя проблема с производительностью с перебором SelectionChange или условным форматированием, но есть заметное отставание, от которого я бы хотел избавиться.
Условное форматирование является суперосновным (что-то вроде Column ($ D3) = Group1Column), и это только для целей «на глазу», но это будет полезно для решения в целом.
Некоторые вещи, которые я пробовал: .ScreenUpdating, .EnableEvents, .Calculations. .ScreenUpdating гарантирует, что пользователь должен подождать, прежде чем выбрать следующую ячейку, но не совсем то, что я имел в виду.
Любые советы будут полезны!