如何使用VBA将文件或文件夹删除到回收站?
发布时间:2023-08-16 17:27:35
使用VBA代码,怎样将文件或者文件夹删除到回收站呢?
RmDir语句、Kill语句以及FileSystemObject中的语句都会把文件或文件夹彻底删除掉,没有回旋余地。
答:有点复杂,因为需要借助于WindowsAPI来实现。下面是代码:
‘API声明
Declare FunctionSHFileOperation Lib “shell32.dll” Alias “SHFileOperationA”(lpFileOp As SHFILEOPSTRUCT) As Long
Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Boolean
hNameMappings As Long
lpszProgressTitle As String
End Type
Sub RecycleFile()
Dim FileOperation As SHFILEOPSTRUCT
Dim lReturn As Long
Dim sFileName As String
‘ Dim sFolder As String ‘声明代表要删除的文件夹字符串
sFileName = Application.GetOpenFilename(FileFilter:=”Excel工作簿,*.xls*”,Title:=”选择要删除的文件”)
Const FO_DELETE = &H3 ‘删除pFrom所指定的文件或目录
Const FOF_ALLOWUNDO = &H40 ‘可还原(若沒有FOF_ALLOWUNDO则不会放到回收站)
Const FOF_NOCONFIRMATION = &H10 ‘不显示对话框直接放到回收站
With FileOperation
.wFunc = FO_DELETE
.pFrom = sFileName
‘.fFlags = FOF_ALLOWUNDO +FOF_NOCONFIRMATION ‘不显示对话框直接删除到回收站
.fFlags = FOF_ALLOWUNDO ‘显示对话框让用户决定是否删除到回收站
‘.fFlags = FOF_NOCONFIRMATION ‘不显示对话框直接删除
End With
lReturn = SHFileOperation(FileOperation)
End Sub
如果要删除文件夹,可以设置变量sFolder为要删除的文件夹路径,然后将其赋值给pFrom。
上述代码运行后,会显示下图所示的对话框,提示你选择要删除的文件。
选取文件后,单击“打开”按钮,则会弹出如下图所示的对话框,单击“是”,则将所选文件删除到回收站。
在程序中,我们使用下面的语句来达到目的:
.fFlags = FOF_ALLOWUNDO ‘显示对话框让用户决定是否删除到回收站
如果希望不显示提示对话框,而直接将文件删除并放到回收站,则用下面的语句代替:
.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION ‘不显示对话框直接删除到回收站
如果希望不显示提示对话框,并彻底删除,而不放入回收站,则用下面的语句代替:
.fFlags = FOF_NOCONFIRMATION ‘不显示对话框直接删除
看起来有点复杂,如果想深入研究,可以参阅关于Windows API介绍的相关资料。如果只是想在必要时使用这些代码,则只需将上述代码复制到自已的代码模块中,作一些微小调整即可。


猜你喜欢
- 如果在下载安装迅雷X的过程中未创建快捷方式的话,也可以在安装完成后手动进行创建。那么,该怎么操作呢?下面小编就来介绍一下迅雷X快捷方式的创建
- 使用过Windows Server服务器的童鞋,应该都知道,在关机或重启时会弹出“关机原因”对话框,选择关机原因后,才能继续关机操作,这就是
- 网易邮箱大师忘记密码怎么办?有些用户在使用网易邮箱大师的过程中会把密码给忘记,想要找回密码,但是不知道要怎么进找回,下面就给大家分享网易邮箱
- 众所周知,当我们给电脑重新昨晚系统之后,都会为电脑设置一个用户名,通常情况下,电脑用户名都是默认的。但是很多用户喜欢个性都会改掉用户名。因此
- 宽带正常连接但无法上网,这是怎么回事呢?最近win8系统的用户重装系统之后出现网络连接正常却无法上网的情况,一起来看看具体的解决方法吧win
- 今天小编为大家介绍一下word2010怎么生成目录,希望对大家有帮助。简单来说:先为标题设置样式,对应到文章的标题,最后点引用-目录,就可以
- 共享文件是企业或团队经常需要使用的一项功能,可以大大提高工作效率和沟通效率。但是不少用户升级Win11系统之后,不知道怎么设置共享文件夹了。
- 我们经常在工作中使用PPT办公软件,那么你知道PPT中如何设置文字动画和出现顺序吗?今天小编就教一下大家使用PPT中如何设置文字动画和出现顺
- 由于Mac电脑的系统和Windows不同,Mac想要开启vt需要在终端使用命令来操作,而不是像Windows系统一样在bios中开启。那么具
- Win11是微软最新的操作系统,很多操作的设置和界面都和以往的Windows系统不太一样,有些网友留言问Windows11怎么关锁屏?那么这
- 来自国内的越狱团队太极越狱终于放出了大家期待已久的iOS8.3完美越狱。爱思助手已支持iOS8.1.3-iOS8.3系统完美越狱,点击左下角
- 我们在使用电脑的时候,经常会需要使用到电脑的截图,那么在最新的Windows11操作系统中,我们应该怎么截屏呢?其实操作方法非常的简单,下面
- 生活工作中,我们经常会使用u盘来存放我们的文件,但是有时候当我们打开u盘时,u盘里的文件突然就不见了,出现这样子的问题时,我们要如何解决呢?
- 大家平时数据处理的时候,插入行、删除行以后,是不是原有序号会不连续了?新插入的行,序号是空的;删除行,序号间断了。遇到这种情况怎么办?手工重
- 2021年11月份的手机天梯图又出来了,现在手机的更新换代的速度超级快,这里小编为大家带来2021年11月手机CPU性能天梯图,让你可以实时
- 电脑防火墙是一项非常重要的功能,是保护电脑的一道屏幕,但是很多小伙伴在下载软件的时候,防火墙因为不信任软件就没有权限安装。这个时候我们该如何
- 微软今天正式向选择了快速更新频率的Windows Insider内测用户带来了最新的Win10预览版10041,为了让大家能顺利更新推送,下
- Win10系统怎么解决麦克风杂音问题?Win10系统录音的时候,发现有很多杂音,该怎么解决这个问题呢?下面我们就来看看详细的教程,需要的朋友
- 沙盒sandbox很多朋友应该知道,它是一种可以在隔离的环境中运行未知exe.msi文件的程序,win10在1903build18305版本
- win10怎么设置开机账户自动登录?win10最新版必须设置用户密码,但是每次开机都需要属于用户名密码就太麻烦了,特别是家里的电脑,希望开机