У меня есть программа vb6, которая вызывает макросы из файла Excel.
До недавнего времени она работала нормально (в течение многих лет), но теперь выдает ошибку.
Мы получаем runtime 438 «Объект не поддерживает это свойство или метод» ошибка.
В качестве примера вы можете использовать эту простую программу vb6:
Set App = CreateObject("Excel.Application")
Set wrkbook = App.Workbooks.Open(fileName)
App.visible = True
wrkbook.Test
Приведенный выше код не ' больше не работает. Вместо этого, если мы заменим последнюю строку следующим:
wrkbook.Application.Run "ThisWorkbook.Test"
, это сработает. Ссылка Excel, используемая для этого, была «Библиотека объектов Microsoft Excel 16.0»
Это было проверено в Excel 2010, 2013, Excel365 с тем же Результаты. Кроме того, все настройки безопасности отключены в Excel.
Прежде чем изменять всю мою кодовую базу и использовать Application.Run, я бы знал, почему это происходит.
Также использование Application.Run также имеет некоторые недостатки Как и вызовы private & publi c sub и выданные исключения не передаются обратно в vb6.
Существуют ли другие соображения относительно использования Application.Run?
В последнее время Microsoft что-то изменила (обновление Scurity) или я что-то не так делаю?