Как Запустить Макрос из Другой Книги Excel • Исходные данные

Запуск макроса Excel из внешнего Excel с помощью VBScript из командной строки

Я пытаюсь запустить макрос Excel из-за пределов файла Excel. В настоящее время я использую «.vbs» файл из командной строки, но он продолжает говорить мне, что макрос не может быть найден. Вот script Я пытаюсь использовать

Я попробовал решения, расположенные в Возможно ли запустить макрос в Excel из внешней команды?, чтобы получить это далеко (и, конечно же, изменено), но это не так, похоже, работает. Я продолжаю получать сообщение об ошибке «Microsoft Office Excel: макрос» Macro.TestMacro «не найден.

Хорошо, это на самом деле просто. Предполагая, что ваш макрос находится в модуле, а не на одном из листов, вы используете:

Для имени файла с пробелами помещайте имя файла в кавычки.

Если вы разместили макрос под листом, скажем, sheet1, просто предположите, что sheet1 владеет функцией, которую она выполняет.

Примечание. Вам не нужна нотация macro.testфункции, которую вы использовали.

Думаю, вы пытаетесь это сделать? (ИСПЫТАНИЕ И ИСПЫТАНИЕ)

Этот код откроет файл Test.xls и запустит макрос TestMacro , который, в свою очередь, напишет в текстовый файл TestResult.txt

Я попытался адаптировать код @Siddhart к относительному пути для запуска моего макроса open_form , но он, похоже, не работал. Это была моя первая попытка. Мое рабочее решение ниже.

Я действительно отработал это, на всякий случай, когда кто-то хочет запустить пользовательскую форму «подобно» автономному приложению:

1 — Я не хотел использовать событие Workbook_Open, поскольку excel заблокирован только для чтения.
2 — Команда партии ограничена тем фактом, что (насколько мне известно) она не может вызвать макрос.

Сначала я написал макрос, чтобы запустить мою пользовательскую форму, скрывая приложение:

Затем я создал vbs для запуска этого макроса (выполнение этого с относительным путем было сложным):

И я, наконец, сделал пакетный файл для выполнения VBS.

Обратите внимание, что я также включил «Установить обратно в видимый» в мой Userform_QueryClose :

В любом случае, спасибо за вашу помощь, и я надеюсь, что это поможет, если кому-то это понадобится

Так как мой связанный вопрос был удален праведной рукой после того, как я убил весь день, чтобы узнать, как победить ошибку «макрос не найден или отключен», опубликовал здесь единственный синтаксис, который работал у меня (application.run не, независимо от того, что я пробовал)

Я попробовал вышеуказанные методы, но я получил ошибку «macro not found».
Это окончательный код, который сработает!

В моем случае MyMacro находится под Sheet1, таким образом Sheet1.MyMacro.

я пытаюсь сделать loading.gif появляться, пока vbsricpt запускает vba excel. и в конце скрипта loading.gif закроется и на экране появится надпись «Завершено».

Привет, я использовал этот поток, чтобы получить решение, тогда я хотел бы поделиться тем, что я сделал на случай, если кто-то сможет его использовать.

То, что я хотел, — это вызвать макрос, который меняет некоторые ячейки и стирает некоторые строки, но мне нужно было более 1500 excels (приблизительно потратил 3 минуты для каждого файла)

Основная проблема:
Когда вы вызывали макрос из vbe, у меня была та же проблема, было невозможно вызвать макрос из PERSONAL.XLSB, когда script отклонил excel, не выполнил personal.xlsb и не был какой-либо опцией в окне макроса

Я решил это, сохранив один файл excel с загруженным макросом (a.xlsm) (перед выполнением script)

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Пришло время воспользоваться преимуществами наших трудов, воспроизведя макрос и применив те же преобразования к новому списку данных. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Лучшее в макросах Excel – они применяются последовательно. Это поможет избежать ошибок в данных. К сожалению, это так же может быть и проблемой. Если ваши исходные данные существенно изменяются, макрос может не знать, как обработать данные и изменит данные некорректно.
Как Запустить Макрос из Другой Книги Excel • Исходные данные

Работа с макросами в Excel – инструкция

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

Сокращение кода и повышение эффективности — пожалуйста!

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

Вместо того, чтобы вводить полную строку кода для каждой строки, мы можем использовать оператор With, чтобы повторить ссылку. Каждая строка, начинающаяся с точки между строкой «With» и «End
With », будет использовать оператор «With » в качестве своего спецификатора.

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

специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Если макрос вставлен в рабочую книгу, он также выполняется автоматически, когда пользователь производит определенные действия над книгой закрывает ее, или сохраняет. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Теперь, нажмите на вкладку Разработчик. Слева вы видите несколько кнопок, относящихся к макросам в Microsoft Excel, которые мы будем использовать в этом уроке. Посмотрите есть ли у вас кнопки Макросы, Запись макроса и Относительные ссылки:

Почитать — Excel Macro Tips — Как автоматически запускать макрос при открытии книги Excel — Портал-К

Если в Excel 2007 не работает кнопка «макросы», причиной может быть отсутствие активации приложения. Для этого жмите на кнопку «Активировать» и следуйте инструкции. В большинстве случаев такая опция является платной.

Сохранение файла Excel с названием из ячейки — без привязки к ячейке

Теперь давайте представим, что заранее мы не можем определить, какая именно ячейка будет формировать название файла (может B14, а может и нет), поэтому мы можем немного скорректировать алгоритм таким образом, чтобы он брал значение из ячейки, которая является активной, но в этом случае Вы, конечно же, предварительно, должны выбрать ее (т.е. встать на нее).

Замените код процедуры следующим кодом, который совсем немного, но изменен.

Проверяем работу, становимся на нужную ячейку, и запускаем макрос (в процедуре я добавил проверку, если выбрана пустая ячейка, возникнет ошибка).

Скриншот 7

Запуск Макроса Excel Из Внешнего Excel С Помощью Vbscript Из Командной Строки
Вместо того, чтобы вводить полную строку кода для каждой строки, мы можем использовать оператор With, чтобы повторить ссылку. Каждая строка, начинающаяся с точки между строкой «With» и «End
With », будет использовать оператор «With » в качестве своего спецификатора.
специалист
Мнение эксперта
Витальева Анжела, консультант по работе с офисными программами
Со всеми вопросами обращайтесь ко мне!
Задать вопрос эксперту
Когда другой макрос вызывается из макроса, VBA запустит весь этот макрос, затем вернется к вызывающему макросу и продолжит выполнение кода. Если же вам нужны дополнительные объяснения, обращайтесь ко мне!
Ниже представлен код процедуры, я его подробно прокомментировал. Единственное скажу, что я во всех примерах сохраняю новые файлы без макросов (расширение .xlsx), т.е. по факту будет один файл с поддержкой макросов, а все производные — без.

Как включить макросы в Excel читать подробную инструкцию

Но не позволяйте огромному размеру библиотеки объектов пугать вас. Когда вы идете готовить еду, вам не понадобятся все инструменты на кухне, и вы не собираетесь использовать все ингредиенты в кладовой. То же верно, когда вы пишете макросы. Лучше начать с основ и продолжить свой путь. Начните с миски каши и продолжайте свой путь к изысканному обеду из 5 блюд.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: