Простая ошибка VBA 1004 после автофильтра на столе - PullRequest
0 голосов
/ 09 ноября 2019

Я новичок в программировании на VBA, и я пытаюсь автоматизировать следующую задачу: у меня есть только 2 таблицы, а именно "Таблица1" и "Подытог", и я хочу взять фильтр, примененный в столбце 3 "Таблица1 "и применить его к первому столбцу" Подытога ";Более того, они находятся на одном листе, и я хотел бы выполнять эту задачу каждый раз, когда я меняю 3-й фильтр на «Таблица1» через дополнительные ячейки, которые вызывают событие Workbook. К сожалению, это дает мне следующую ошибку:

 Run Time error -2147417848 (80010108)
 Auto filter method of range class failed

Часть, в которой я проверяю, существует ли "Подытог", еще не готова. activetab это "Table1"

' Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
'-----------------------
' Initialization

Dim ActiveSh As Worksheet
Set ActiveSh = Sheets(Sh.Name)

With ActiveSh

    activetab = .ListObjects(1).Name  ' Table from which get criteria
    Subtotale = .ListObjects(2).Name  ' Table in which apply it
   '------------------------------------------------

   ' Check if Subtotale (table) exists

   '--------------------------------------
   ' I can filter Subtotale if it exists

     With .ListObjects(activetab)

        If .AutoFilter.Filters(3).On Then
           Criterio = CStr(.AutoFilter.Filters(3).Criteria1)
           Criterio = Right(Criterio, Len(Criterio) - 1)
        Else
            Exit Sub
        End If

    End With

'-------------------------------------------------------------
' Apply Filter

   .ListObjects(Subtotale).Range.AutoFilter Field:=1, Criteria1:=Criterio
   ' ERROR ON THIS LINE
End With

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...