Автоматизация в любом месте VBScript

Здравствуйте, я пытаюсь загрузить VBScript, чтобы отфильтровать только те данные, которые были изменены. Когда я использую скрипт как макрос, он работает, но когда я запускаю его через AAE, он выдает

Ошибка в ожидаемом заявлении сценария 1024.

введите здесь описание изображения

Sub filtering()
    Range("H3").AutoFilter Field:=8, Criteria1:="<>"
    Range("Q3").AutoFilter Field:=17, Criteria1:="<>"
    Range("P3").AutoFilter Field:=16, Criteria1:=">=" & Range("A1").Value
    Operator:=xlAND Criteria2:="<=" & Range("A2").Value   
End Sub

person Piotr    schedule 30.03.2018    source источник
comment
Благодаря эксклюзивной команде, доступной для excel в библиотеке команд, вы сможете использовать встроенную команду AAE для достижения того, что вы пытаетесь получить из VB.   -  person Clint    schedule 30.03.2018
comment
Или преобразовать макрос VB в кнопку «Добавить» и заставить бота нажать кнопку (которая запускает макрос)   -  person Clint    schedule 30.03.2018
comment
Привет, Клинт, Но проблема в том, что каждый день у меня будет создаваться новый файл, поэтому я хотел автоматически запускать сценарий VB из AAE в выбранный файл Excel. Видите ли вы какое-либо решение, как это сделать? Решение, о котором я также думал, состоит в том, чтобы преобразовать файл excel в SQL-запрос, а затем работать с SQL вместо excel, что, я думаю, будет быстрее, но я не уверен, какие последствия могут произойти.   -  person Piotr    schedule 03.04.2018
comment
Я думаю, что лучше всего рассмотреть возможность использования существующего сценария VB, теперь вопрос в том, как вы заставите AAE запускать этот сценарий нового файла каждый день. Для этого мы можем легко создать кнопку добавления, которая запускает ваш сценарий VB.   -  person Clint    schedule 03.04.2018
comment
Как вы хотите создать кнопку добавления, которую вы имеете в виду в файле Excel, которая запускает макрос после нажатия на нее? Это своего рода решение грубой силы, но я также подумал о том, чтобы сделать бота для записи сценария VB в новый открытый файл, а затем использовать функцию в макросе запуска AAE.   -  person Piotr    schedule 05.04.2018
comment
Если решение помогло, отметьте его как ответ, чтобы оно могло помочь и другим участникам сообщества :)   -  person Clint    schedule 11.04.2018


Ответы (1)


Есть 2 подхода к решению этой проблемы:


Во-первых:


Давайте включим подпрограмму внутри тега <script>

<script type="text/vbscript">

Sub filtering()
    Range("H3").AutoFilter Field:=8, Criteria1:="<>"
    Range("Q3").AutoFilter Field:=17, Criteria1:="<>"
    Range("P3").AutoFilter Field:=16, Criteria1:=">=" & Range("A1").Value
    Operator:=xlAND Criteria2:="<=" & Range("A2").Value   
End Sub

</script> 

Или полностью проигнорируйте подпрограммы и включите приведенный ниже фрагмент в файл .vbs в AAE.

Range("H3").AutoFilter Field:=8, Criteria1:="<>"
Range("Q3").AutoFilter Field:=17, Criteria1:="<>"
Range("P3").AutoFilter Field:=16, Criteria1:=">=" & Range("A1").Value
Operator:=xlAND Criteria2:="<=" & Range("A2").Value   

Второй:

Вы можете добавить скрипт в качестве кнопки надстройки в виде лент. А в AAE вы можете указать кнопке щелкнуть по кнопке, используя Object Cloning из библиотеки команд.

Например: как выглядит кнопка на лентах Excel

введите здесь описание изображения


Модуль кода в админке

введите здесь описание изображения


person Clint    schedule 05.04.2018