【发布时间】:2017-03-31 04:21:09
【问题描述】:
这里是新手。我用提交按钮创建了一个启用宏的 word 文档。该文档是只读的,所以我要做的是让它保存一个临时文件,附加临时文件,然后将其删除。很简单,对吧?一切正常,除了它不会删除。附件是提交按钮的代码。请帮忙!谢谢。
Public Sub SubmitButton_Click()
Dim OL As Object
Dim EmailItem As Object
Dim Doc As Document
Dim sTempFilePath As String
Application.ScreenUpdating = False
sTempFilePath = ("C:\temp\test.doc")
Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olMailItem)
Set Doc = ActiveDocument
ActiveDocument.SaveAs FileName:="C:\temp\test.doc"
With EmailItem
.Subject = "Application For Leave Form"
.To = "email@email.com"
.Attachments.Add sTempFilePath
.Send
End With
Application.ScreenUpdating = True
Set OL = Nothing
Set EmailItem = Nothing
Set Doc = Nothing
ActiveDocument.Close
Kill sTempFilePath
End Sub
为简单起见,我取出了很多代码,但它仍然没有删除文件。这有什么问题?
Public Sub SubmitButton_Click()
Dim Doc As Document
Dim sTempFilePath As String
sTempFilePath = ("C:\temp\test.doc")
Set Doc = ActiveDocument
ActiveDocument.SaveAs FileName:="C:\temp\test.doc"
ActiveDocument.Close
Kill sTempFilePath
End Sub
【问题讨论】:
-
你好。检查this answer 看看是否有帮助
-
请更新您的问题并在此处发布代码
-
我不熟悉 Word 的 VBA,但通过调试代码我注意到在
ActiveDocument.Close行中,您实际上正在关闭正在运行宏的文档,因此Kill sTempFilePath永远不会执行 -
这绝对有道理!关于我应该如何去做的任何想法?如果我将 Kill 移到它上面,我会收到拒绝访问错误(正在使用中)。
-
看我的回答,虽然 user3598756 也提供了替代解决方案