点上方关注我们,每天早上5分钟,让Excel多点轻松
大家好,我是星光,孔子曰一日不见如隔三秋兮——多无聊的人这是~今天和大家分享的VBA小代码是按指定条件批量删除工作簿。
如下图所示,文件夹下包含了多个Excel文件,需要按你的任意规则对其删除全部或一部分。
1使用以下代码,将指定文件夹下文件名提取到当前工作表的A列。发
Sub GetFiles() Dim strPath As String, strFileName As String, k As Long With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then strPath = .SelectedItems(1) Else: Exit Sub '获取用户选择的文件夹的路径,如果未选取,则退出程序 End With If Right(strPath, 1) <> "\" Then strPath = strPath & "\" Application.ScreenUpdating = False Range("a:b").Clear: k = 1 '清除A:B列的所有 Cells(1, 1) = "旧文件名": Cells(1, 2) = "是否删除" strFileName = Dir(strPath & "*.xls*") Do While strFileName <> "" k = k + 1 Cells(k, 1) = strPath & strFileName strFileName = Dir Loop Application.DisplayAlerts = TrueEnd Sub
结果如下图所示。
2,对需要删除的文件,使用函数等方法,在B列标记“删除”。
3,复制运行以下代码,即可完成对A列标记“删除”的文件批量删除。
Sub DeleteFile()
Dim r, i As Long
r = Range("a1").CurrentRegion '数据装入数组
For i = 2 To UBound(r)
'标题行不要,从数组第二行开始遍历
If r(i, 2) = "删除" Then Kill r(i, 1) 'Kill语句删除指定文件
Next
MsgBox "完成。"
End Sub
代码三五行,工作不用忙断肠,你也试一下吧~
如果你还不懂得如何运行VBA代码,可以参考:如何运行VBA代码?依次点击菜单【进阶教程】→【VBA常用代码】可以获取更多实用VBA小代码。
小贴士:
本文第二段代码通过Kill语句从磁盘删除文件,它的语法是
Kill pathname
参数pathname是必须的,一个字符串表达式,用来指定要删除的文件名,可以包含目录或文件夹以及驱动器,可以使用通配符指定多个文件。比如,删除D:\看见星光下的所有包含“星光”的Excel工作簿,代码如下:
Kill "D:\看见星光\*星光*.xls*"
星号(*)是通配符,可以代替零到多个字符。 本期示例文件下载: https://pan.baidu.com/s/1HK2htdV3gRWgtQS6HTE7Ww
提取码: mbuc 系统学习Excel,推荐加入我的Excel社群 ▼
更多教程&练习
教程1:零基础学Excel(一)什么是Excel?
教程2:零基础学SQL in Excel 25篇合集
作业集:学习不练习=没学习,答题开始!
©看见星光