Я искал другие сообщения по этой теме, но не могу найти решение.Я хочу запустить некоторый код VBA в Excel 2016 (на imac под управлением ОС 10.13.5), чтобы открыть текстовый документ (желательно только для чтения).Если экземпляр слова уже запущен, я хочу закрыть его, прежде чем продолжить.(Было бы хорошо, если слово уже запущено, чтобы спросить, хочу ли я сохранить другие экземпляры перед их закрытием.) У меня есть код
Private Sub CommandButton1_Click()
Dim w As Object
' If word is already open get ahold of the running instance
' Otherwise create a new instance
On Error Resume Next
Set w = GetObject(, "Word.Application")
If w Is Nothing Then Set w = CreateObject("Word.Application")
On Error GoTo 0
' Close all open files and shutdown Word
' Loop through any open documents and close them
Do Until w.Documents.Count = 0
w.Documents(1).Close
Loop
w.Quit False
Set w = Nothing
' Now that all instances of word are closed, open the template
Dim wdApp As Object
Dim wdDoc As Object
Set wdApp = CreateObject("Word.application")
wdApp.Visible = True
wdApp.DisplayAlerts = False
MYPATH = "Volumes/256SSD/""How to do stuff""/""myfile.docx"""
Set wdDoc = wdApp.Documents.Open(FileName:=MYPATH)
End Sub
Когда я запускаю это с уже словомоткрыто, я получаю переменные результаты.Иногда код запускается по циклу «делать до» и, кажется, закрывает экземпляры открытого слова, затем переходит к последней строке и выдает ошибку времени выполнения vba «Ошибка приложения или объекта».Экземпляр слова запущен и ожидает ввода файла, который нужно открыть.
Если я сразу же снова выполню код, не будет введен «цикл до», и приходит слово, запрашивающее ввод имени файла.VBA выдает ошибку времени выполнения «Ошибка автоматизации».Затем я могу выбрать имя файла из списка «Последние файлы», и оно открывается, но ошибка времени выполнения остается, а файл, выбранный в MYPATH, не открывается.
Буду признателен за помощь.