У меня в настоящее время есть макрос для автофильтра моих данных. Я не могу заставить его работать автоматически при изменении ячейки. Я хочу, чтобы макрос запускался всякий раз, когда значение в ячейке менялось. Был бы благодарен за любую помощь. Я задаюсь вопросом, лежит ли проблема в том, на каком листе я размещаю свой код.Макрос для расширенного фильтра не работает автоматически
Мой код выглядит следующим образом.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed. In this case,
' Cell B2 will be changed when a value is selected on
' another worksheet.
Set KeyCells = Range("B1:B2")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Perform advanced filter on data
' Place your code here.
Range("B4:H976").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("SalesByLocation!Criteria"), Unique:=False
End If
End Sub
Вы пытались его отладить? Установите точку останова в 'Set KeyCells = Range (« B1: B2 »)' и посмотрите, попадает ли он. – nunzabar
Привет, что вы имеете в виду, установив точку останова? – sychia2010sis
Чтобы установить точку останова, поместите курсор в строку 'Set KeyCells = ...' и нажмите F9. Когда код запускается, то есть событие срабатывает, VBA останавливает выполнение - и вы можете выполнить код с F8, чтобы посмотреть, что происходит. Попробуйте и дайте понять, как все прошло. PS: Пожалуйста, используйте @username в любом комментарии, поэтому, пожалуйста, получите уведомление по вашему отзыву! –