如何用vba自杀文件?

如何用vba删除文件?一文中我们介绍了用vba的kill语句删除文件的方法。

但是如果直接用以下的代码删除自身,会弹出“拒绝的权限”的对话框:

Sub QQ1722187970()
    Dim sFileName As String
    sFileName = Excel.ThisWorkbook.FullName
    Kill sFileName
End Sub

如下图所示:

这是由于打开的excel工作簿是读写模式,在读写模式下不能实现自杀。

此时,需要通过Workbook对象的ChangeFileAccess方法将工作簿的模式改为只读模式即可实现自杀。

Sub QQ1722187970()
    '设置不提示消息,阻止其它弹窗消息显示
    Excel.Application.DisplayAlerts = False
    Const xlReadOnly = 3
    Const xlReadWrite = 2
    Dim sFileName As String
    sFileName = Excel.ThisWorkbook.FullName
    '先将excel文件设置为只读模式即可实现自杀
     Excel.ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
    Kill sFileName
    Excel.Application.DisplayAlerts = True
End Sub
       

发表评论