Ошибка выхода за границы моего макроса - PullRequest
0 голосов
/ 05 июня 2019

Я делал сценарий VBA, который извлекает лист Excel со страницы, копирует его на мою текущую страницу, затем применяет записанный макрос, который изменяет фильтры таблицы. Проблема возникает в фильтрах, где я получаю ошибку вне диапазона каждый раз, когда я запускаю сценарий.

Я предполагаю, что это происходит, поскольку элемент уже настроен на определенный фильтр, поэтому, если я перезапущу макрос, он не знает, как справиться с этой ситуацией.

Мне было любопытно, если бы кто-нибудь мог найти решение этой проблемы.

Sub FilterCES()

ActiveSheet.ListObjects("Stories").Range.AutoFilter Field:=27, Operator:= _
    xlFilterValues, Criteria2:=Array(0, "6/3/2019")

ActiveSheet.ListObjects("Stories").Range.AutoFilter Field:=10, Criteria1 _
    :="Released to Customers"
'Filer by Type:
ActiveSheet.ListObjects("Stories").Range.AutoFilter Field:=13, Criteria1 _
    :=Array("full_trial", "renewal", "sale", "trial_to_sale"), Operator:= _
    xlFilterValues

ActiveSheet.ListObjects("Stories").Range.AutoFilter Field:=15, Criteria1 _
    :=Array("academic", "public_library", "schools"), 
    Operator:=xlFilterValues

ActiveSheet.ListObjects("Stories").Range.AutoFilter Field:=16, Criteria1 _
    :=Array("Australia", "Canada", "Finland", "Germany", "Italy", 
"Netherlands", _
    "New Zealand", "United Kingdom (GB)", "United States", "Nordics", 
"Norway", "Sweden", "Finland", "Denmark"), Operator:= _
    xlFilterValues
End Sub

Я ожидал, что макрос просто изменит настройки на те, которые я выбрал, поскольку он использует автоматическую фильтрацию, но это не так, и я получаю ошибку вне диапазона.

1 Ответ

1 голос
/ 05 июня 2019

Не могли бы вы попробовать вставить эту строку между фильтрами?

Activesheet.AutoFilterMode = False

просто так:

Activesheet.AutoFilterMode = False
ActiveSheet.ListObjects("Stories").Range.AutoFilter Field:=27, Operator:= _
    xlFilterValues, Criteria2:=Array(0, "6/3/2019")


Acivesheet.AutoFilterMode = False
ActiveSheet.ListObjects("Stories").Range.AutoFilter Field:=10, Criteria1 _
    :="Released to Customers"
.......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...