如何使用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。

上述代码运行后,会显示下图所示的对话框,提示你选择要删除的文件。

如何使用VBA将文件或文件夹删除到回收站?

选取文件后,单击“打开”按钮,则会弹出如下图所示的对话框,单击“是”,则将所选文件删除到回收站。

如何使用VBA将文件或文件夹删除到回收站?

在程序中,我们使用下面的语句来达到目的:

.fFlags = FOF_ALLOWUNDO ‘显示对话框让用户决定是否删除到回收站

如果希望不显示提示对话框,而直接将文件删除并放到回收站,则用下面的语句代替:

.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION ‘不显示对话框直接删除到回收站

如果希望不显示提示对话框,并彻底删除,而不放入回收站,则用下面的语句代替:

.fFlags = FOF_NOCONFIRMATION ‘不显示对话框直接删除

看起来有点复杂,如果想深入研究,可以参阅关于Windows API介绍的相关资料。如果只是想在必要时使用这些代码,则只需将上述代码复制到自已的代码模块中,作一些微小调整即可。

标签:excel使用技巧,excel入门教程,excel表格的公式,Excel教程
0
投稿

猜你喜欢

  • Wps如何设置分享权限?Wps设置分享权限的方法

    2022-12-30 08:48:02
  • Win10电脑出现死机要怎么查看原因?

    2023-07-16 17:24:47
  • WPS+云办公不同版本有什么区别?

    2023-05-11 23:19:03
  • 百度输入法怎么设置快捷键让输入更便捷效率更高

    2023-12-03 19:30:37
  • 如何在Word 2016中的文本中插入图片?

    2022-08-12 13:49:13
  • 使用Pages for mac从事文字处理与页面排版,这些精美的模板肯定用的到

    2022-10-03 23:14:06
  • Excel2013中使用"定位"对话框选择特殊单元格的操作方法

    2023-08-11 00:42:51
  • 怎么更新nvidia显卡驱动程序?nvidia显卡驱动升级

    2022-04-02 23:03:41
  • epicgta5突然要重新安装怎么办_epicgta5突然要重新安装解决方法

    2023-10-13 17:29:35
  • Mac转换图片格式的方法

    2022-10-19 04:12:45
  • 怎么制作Excel表格监控器,将别人的每一步操作都记录在案

    2022-03-25 07:47:09
  • 搜狗输入法图标不见了,而且切换不了,怎么办?

    2023-03-23 18:03:00
  • WPS表格技巧—逆向查询

    2022-06-11 05:22:50
  • PPT过渡页制作的几个技巧

    2022-05-19 10:42:04
  • Mac新手使用技巧——如何在Mac上打开和关闭屏幕使用时间

    2022-02-23 12:00:41
  • 电脑无法安装鼠标驱动的解决方法

    2023-11-11 22:12:23
  • QQ输入法手机版如何输入数字

    2023-06-01 10:57:46
  • Win7系统使用USB无线网卡提示ics启动失败怎么办?

    2023-11-13 04:46:09
  • Win11 22H2系统64位笔记本通用版系统(内存优化)

    2023-06-27 18:32:20
  • 电脑玩游戏很卡怎么办 系统运行游戏卡顿的解决方法

    2023-09-10 06:12:12
  • asp之家 电脑教程 m.aspxhome.com