Проблема в том, что в Ma c создание новых COM-объектов через New или CreateObject в настоящее время не работает. Или, по крайней мере, он не работает для некоторых пользователей с более sh установками ОС Ma c и Office.
Если вы сможете еще немного закрепить свой код, я думаю, вы увидите, что эта ошибка возникает в первой исполняемой строке после «Dim objExcel As New Excel.Application».
Эта проблема сообщалась в Microsoft несколько раз в течение нескольких лет, но очевидного ответа не было. Я предполагаю, что либо их разработчик. Команда внесла исторические c изменения в свою конфигурацию ОС Ma c, о которых они забыли, это означает, что они не сталкиваются с этой проблемой, или что люди, которые имели опыт работы с COM на Ma c, ушли и Microsoft останавливается, пока они не смогут восстановить некоторые соответствующие знания.
Кажется, на самом деле нет очевидной документации Microsoft по этому поводу.
Обновление.
В версии 16.34 из Ma c Word, вещи кажутся чтобы немного измениться.
GetObject по-прежнему бесполезен.
Но если вы сделаете
Dim app as Object
Set app = CreateObject("Excel.Application")
приложение больше не будет ничего. К сожалению, если вы выполните
typename (приложение)
, вы получите «WorkBook», что означает, что код по-прежнему не возвращает правильный тип объекта.
Но здесь, Теперь я могу, по крайней мере, сделать что-то вроде
If UCase(Typename(app)) = "WORKBOOK" Then
Set app = App.Application
End If