在如何用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
发表评论