如果是DOC格式,则无法使用Word 2007 VBA KILL文件

时间:2010-12-03 01:56:27

标签: vba ms-word

以下代码适用于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 :(得分:0)

实际上,这是Word中一些奇怪的事情,它会使.doc文件的打开时间比.docx长得多。

你可以使用一个循环来连续测试删除直到它工作 - 不要使用Kill,因为你不能捕获它,使用VBScript FileSystemObject.DeleteFile(str Name,bool Force),这样更可靠 - 或者您可以使用ActiveDocument.Close并重新打开它。但是我注意到,即使这并不总是有效,你有时必须遵循Application.Quit;再见脚本执行,除非你从外部应用程序自动化它,这就是我所做的。