Исправление синтаксических ошибок
Некоторые синтаксические ошибки VBA не замечает до тех пор, пока программа не начнет выполняться. Например, VBA не будет поначалу возражать, если вы укажете в операторе GoTo ссылку на несуществующую метку или вызовете несуществующую процедуру- по этому поводу вы получите сообщение об ошибке компиляции уже после начала выполнения программы.
Когда известно, где допущена синтаксическая ошибка, исправить ее уже несложно. Если вы сомневаетесь в правильном написании имени, объявления или вызова процедуры или функции, имени переменной, оператора создания нового экземпляра объекта или использования управляющей структуры, обратитесь к соответствующим главам этой книги или подходящим разделам справки по VBA.
[expert_bq id=»1570″]Изменение параметров макроса вместе с программными доступ не рекомендуется , если какой-либо из вышеперечисленных процессов работает. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Изменение параметров макроса вместе с программными доступ ( не рекомендуется, если какой-либо из вышеперечисленных процессов работает. Это позволило бы управлять кодом для изменения элементов в VBA Сам проект, включая ссылки и сам код — Ссылка)Не удается запустить макрос. макрос может быть недоступен в этой книге — программирование
В моем случае ошибка произошла, когда я поместил свой макрос (public sub) в раздел ThisWorkbook файла, ожидая, что он сделает его видимым для функции Application.Run . Это было не так, и я получил ту ошибку, о которой вы упоминали.
11 ответов
эта проблема возникает из-за странной причуды в Office / Windows.
после разработки одного и того же фрагмента кода VBA и запуска его сотни раз (буквально) за последние пару дней я столкнулся с этой проблемой только сейчас. Единственное, что отличалось от этого, — это то, что незадолго до возникновения этой запутанной проблемы я случайно закончил выполнение кода VBA неортодоксальным методом.
избыточное действие Ctrl+Break, вероятно, разрешает затянувшееся выполнение.
решение этой проблемы заключается в добавлении строки кода «Приложение.EnableCancelKey = xlDisabled» в первой строке вашего макрос.. Это исправит проблему, и вы сможете выполнить макрос успешно без получения сообщения об ошибке «выполнение кода было прервано».
но после того, как я вставил эту строку кода, я больше не мог использовать Ctrl+Break. Так что это работает, но не очень.
Я обнаружил, что нажатие ctrl + break, пока макрос не работал, исправило проблему.
Я сталкивался с этой проблемой несколько раз во время разработки одного сложного приложения Excel VBA. Иногда Excel начал разбивать объект VBA довольно случайным образом. И единственным выходом было перезагрузить машину. После перезагрузки Excel обычно начинал действовать нормально.
вскоре я узнал, что возможное решение этой проблемы-нажать CTRL+Break один раз, когда макрос не работает. Может, это поможет и тебе.
Это решило проблему для меня. Я мог бы добавить, что это произошло вскоре после обновления MS, и я также нашел дополнение в Excel под названием «Team Foundation» от Microsoft, которое я, конечно, не устанавливал добровольно
моя текущая репутация еще не позволяет опубликовать это как комментарий. Решение Stans для входа в режим отладки, дважды нажмите Ctrl + Break, play on, save решило мою проблему, но у меня есть два неожиданных поворота:
мой проект struture защищен паролем, поэтому для того, чтобы попасть в режим отладки, я должен был сначала войти в режим разработчика, нажмите на структуру проекта и введите пароль.
Я хотел бы добавить больше деталей к стан ответ #2 по следующим причинам:
Я сам сталкивался с этой проблемой более десятка раз и в зависимости от условий проекта, я выбрал между Стэном магический ответ вуду #1 или #2. Когда я снова сталкиваюсь с этим, я становлюсь более любопытным, почему это происходит в первую очередь.
Я хотел бы добавить ответ для пользователей Mac тоже.
существуют ограничения с обоими этими возможными ответами:
это может произойти из-за любой из следующих причин:
операционные системы не выделять системные ресурсы для процесса Excel. (устранение: нужно просто запустить операционную систему-показатель успеха очень низок, но, как известно, работает много раз)
пользователи Mac, попробуйте любой из приведенных ниже вариантов, и из них, безусловно, будет работать в зависимости от вашей архитектуры системы, т. е. ОС и Office версия
вы будете переведены в режим перерыва, используя вышеуказанные комбинации клавиш, так как макрос приостанавливает выполнение сразу после завершения текущей задачи. Это замена шага 2.
Как исправить Ошибка 450 (Неверное количество аргументов или недопустимое присвоение свойств) — Количество аргументов процедуры должно соответствовать количеству параметров в определении процедуры.
решение этой проблемы заключается в добавлении строки кода «Приложение.EnableCancelKey = xlDisabled» в первой строке вашего макрос.. Это исправит проблему, и вы сможете выполнить макрос успешно без получения сообщения об ошибке «выполнение кода было прервано».
Ответ 3
Имел ту же проблему, и я «Скомпилировал проект VBA», который выявил ошибку. После коррекции и компиляции макросы работали.
Вы также сталкиваетесь с этой проблемой при создании процедуры в модуле класса.
Когда вы пытаетесь запустить код извне, вы получаете эту ошибку.
Вы также не можете назначить макрос кнопке члену модуля класса.
Если вы попытаетесь запустить из кода, нажав зеленую кнопку воспроизведения, вы также увидите ту же ошибку.
Либо переместите подпрограмму в обычный модуль, либо создайте новую процедуру в регулярном модуле, который вызывает член класса.
[expert_bq id=»1570″]При передаче аргумента по ссылке метод, применяемый по умолчанию процедуре передается адрес ячейки памяти, в которой хранится переменная. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Если свойство Number объекта Err не равно 0, происходит ошибка. С помощью оператора If проверяется, не равно ли свойство Err.Number 1004, и, если это так, отображается окно сообщения. В рассмотренном примере осуществляется проверка кода на предмет обнаружения ошибки с указанным номером.Несколько советов по работе с VBA в Excel / Хабр
- Нажмите кнопку Microsoft Office, а затем нажмите Параметры Excel.
- Нажмите Траст-центр.
- Нажмите Настройки центра управления безопасностью.
- Нажмите Настройки макроса.
- Нажмите, чтобы установить флажок Доверительный доступ к объектной модели проекта VBA.
- Нажмите кнопку ОК, чтобы закрыть диалоговое окно «Параметры Excel».
- Возможно, вам придется закрыть и снова открыть Excel.
Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.