Я пытаюсь применить макрос при изменении значения ячейки. Я этот код в Dashboard листе:Применить макрос при изменении значения ячейки: 1004 error
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("FilterChoice")) Is Nothing Then Call ApplyDashboardFilter
End Sub
Триггер работает отлично и макрос выполняется сразу после, но не знаю, почему я получил ошибку на расширенной функции фильтра: «приложение или объектная ошибка "
Option Explicit
Sub ApplyDashboardFilter()
Dim rng As Range
Dim filterName As String
Dim tableName As String
filterName = "Filter" & Replace(Sheets("Dashboard").Range("FilterChoice").Value, " ", "")
tableName = filterName + "[#All]"
Sheets("Dashboard").Activate
Sheets("Dashboard").Columns("A:AN").Cells.Clear
Sheets("Critical Flows").Range("ClosingFlows[#All]").AdvancedFilter Action:=xlFilterCopy _
, CriteriaRange:=Sheets(filterName).Range(tableName) _
, CopyToRange:=Sheets("Dashboard").Range("A1"), Unique:=False
Set rng = Range(Range("A1"), Range("A1").CurrentRegion)
ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes).Name = _
"Flows" & filterName
ActiveSheet.ListObjects("Flows" & filterName).TableStyle = "TableStyleMedium3"
If Sheets("Dashboard").Range("FilterChoice").Value = "Orchestrated" Then
Call ApplyFlormulaRunbookName
End If
End Sub
Макрос работает при срабатывании кнопки на листе панели.
Я что-то упустил?
Спасибо заранее,
EDIT:
Ну, что-то странное случилось. Я только что повторно открыл файл после перерыва и работал. Я подозреваю, что что-то случилось с ActiveSheet и/или конфликтом с другой книгой, так как я играю с 2 другими книгами и 10 листами в целом.
Возможно ли это?
Похоже, это пример того, почему вы должны ссылаться на правильные листы, а не на ActiveSheet. Похоже, что «Dashboard» - это активный лист, поэтому передайте это переменной и используйте это. Например. - 'Set wrkSht = Thisworkbook.worksheets (« Dashboard »): wrksht.Columns (« A: AN »). ClearContents: Установите rng = wrksht.Range (« A1 »). CurrentRegion' и т. Д. –
Я думаю это могло быть проблемой. Поскольку я не могу проверить это, я предполагаю, что это путь. Я изменяю свой код на основе вашего ответа, спасибо! – FaXaq