Почему Excel VBA при вызове надстройки вызывает сбой Excel?

Я использую 32-разрядную версию Excel 2010 (Windows 10.1) с загруженной надстройкой (которую я разработал). Мне нужно вызвать одну из функций надстройки (я назову ее changeText) из VBA.

Я написал следующий код VBA за одним из листов:

Sub MakeChange()

    Dim result As String

    result = Application.Run("changeText", "teststring")

    Debug.Print result
    Debug.Print "Complete"

End Sub

и назначил этот Sub для кнопки на этом листе.

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

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

Если я перемещаю функцию в модуль уровня книги, происходит примерно то же самое - я получаю ошибку несоответствия типов в Application.Run строка, в которой я нажимаю "Конец", затем снова то же самое при втором щелчке, но на этот раз приложение зависает после нажатия "Конец".

Надстройка является зрелой, и вызываемая функция прекрасно работает, когда вызывается непосредственно из Excel или иным образом вызывается надстройкой. Вызываемая функция XLL принимает строку и возвращает строку.

Кто-нибудь знает, что здесь может происходить, и, в частности, почему происходит сбой приложения?

0 ответов

Другие вопросы по тегам