image

При работе с VBA вы можете получить это сообщение об ошибке при запуске процедуры. В этой ошибке говорится: «Обнаружено неоднозначное имя: procedure name». В этой статье мы узнаем, почему возникает эта ошибка и как ее решить.

Почему эта ошибка?

Как видно из всплывающего окна, механизм VBA обнаружил одну или несколько процедур с одинаковым именем в одном модуле. Это привело к путанице в движке VBA. Следовательно, VBA сообщает об ошибке.

Как решить эту проблему?

Это просто. Не используйте две одинаковые процедуры с одинаковыми именами в одном модуле. Либо измените название процедуры, либо удалите, либо перенесите в какой-нибудь другой модуль.

Эта ошибка обычно появляется при работе с

link: / events-in-vba-the-events-in-excel-vba [события в Excel]. * Допустим, вы работаете с листом 1 с событиями рабочего листа. Теперь вы хотите запускать сообщение, как только пользователь изменяет выбор ячейки. В этом случае вы будете использовать ссылку `link: / tips-using-worksheet-change-event-to-run-macro-when-any-change-is-made [Worksheet_SelectionChange ()

Событие] `.

Теперь вы снова хотите задать пользователям несколько вопросов, когда пользователь изменяет выбор ячеек. Тогда вам придется использовать то же событие.

Теперь вы написали две процедуры обработки событий для разных задач.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

MsgBox "Hi"

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Application.InputBox ("who are you?")

End Sub

Теперь, когда вы меняете выделение на листе, вы получаете вот что.

image

Теперь, когда вы меняете выделение на листе, вы получаете вот что.

image

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

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

Приведенное ниже событие будет работать отлично. Когда пользователь изменяет выбор ячеек на листе Sheet1, появляется приветственное сообщение, а после этого он задает пользователю вопрос с полем ввода.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

MsgBox "Hi"

Application.InputBox ("who are you?")

End Sub

Теперь, когда двусмысленность исчезла, событие будет работать отлично, и вы больше не получите ошибку, обнаруженную неоднозначным именем.

Так что да, ребята, вот как вы можете решить ошибку неоднозначности в Excel VBA. Я надеюсь, что это было полезно. Если у вас есть какие-либо сомнения относительно этой статьи или любой другой статьи, спросите меня в разделе комментариев ниже.

Статьи по теме:

link: / tips-reference-isnt-valid-excel-error-and-how-to-solution-it [Ссылка не является действительной ошибкой Excel и как ее решить?]: Эта ошибка возникает, когда мы ссылаемся на объект или место, которые не существуют или были изменены. Чтобы решить эту проблему, мы ищем ссылку.

link: / events-in-vba-the-events-in-excel-vba [События в Excel VBA] | В Excel есть семь типов событий. Каждое событие имеет разный характер. Событие приложения имеет дело с уровнем книги. Рабочая тетрадь на уровне листа. Событие рабочего листа на уровне диапазона.

link: / events-in-vba-the-worksheet-events-in-excel-vba [События рабочего листа в Excel VBA] | События рабочего листа действительно полезны, когда вы хотите, чтобы ваши макросы запускались, когда указанное событие происходит на лист.

link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [События книги с использованием VBA в Microsoft Excel] | События книги действуют для всей книги. Поскольку все листы являются частью рабочей книги, эти события работают и с ними.

link: / events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [Запретить автоматическое выполнение макроса / макроса события с использованием VBA в Microsoft Excel] | Чтобы предотвратить запуск макроса auto_open, используйте клавишу Shift.

link: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [События объекта диаграммы с использованием VBA в Microsoft Excel] | Диаграммы — это сложные объекты, к которым вы прикрепляете несколько компонентов. Для создания событий диаграммы мы используем модуль Class.

Популярные статьи:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-повышения-продуктивности [50 сочетаний клавиш Excel для повышения производительности] | Выполняйте свою задачу быстрее. Эти 50 ярлыков сделают вашу работу в Excel еще быстрее.

link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel] | Это одна из наиболее используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов.

link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016] | Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенного значения.

Функция Countif важна для подготовки вашей приборной панели.

link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel] | Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.