Не могу УБИТЬ файл, используя Word 2007 VBA, если это формат DOC - PullRequest
0 голосов
/ 03 декабря 2010

Следующий код работает для файлов DOCX, но выдает «Доступ запрещен» для файлов DOC:

Public Sub SaveGraded()
    oldnamepath = ActiveDocument.FullName

    oldname = GetFileName(ActiveDocument.Name)
    oldExtension = getextension(ActiveDocument.FullName)

    newname = oldname & "_GRADED" & "." & oldExtension

    ActiveDocument.SaveAs filename:=newname
    Kill oldnamepath
End Sub

1 Ответ

0 голосов
/ 03 декабря 2010

Действительно, это одна из тех странных вещей с Word, в которой файл .doc будет открыт исключительно дольше, чем .docx.

Вы можете использовать цикл для постоянного тестирования удаления до тех пор, пока оно не заработает - не используйте Kill для этого, так как вы не можете его перехватить, используйте VBScript FileSystemObject.DeleteFile (str Name, bool Force), который в любом случае более надежен или вы можете использовать ActiveDocument.Закройте и снова откройте его. Тем не менее, я заметил, что даже это не всегда работает, и вам иногда приходится следовать этому с помощью Application.Quit; Прощай, выполнение скрипта, если ты не автоматизируешь его из внешнего приложения, что я и делаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...