日常工作中经常会整理文件到指定的文件夹,少的时候用鼠标拖拖,多了就很麻烦了,这种枯燥的重复性工作可以交给电脑批量处理,现在就分享一个方法。
如下图所示,在这个文件夹中,有各种类型的文件,我想把所有名称为1的文件,无论是什么类型,统一放到文件夹1里,把所有名称是2的文件放到文件夹2里,以此类推,一共有1-5个文件夹。
第一步:首先新增一个excel工作簿,打开后,鼠标放在工作表名上,点击鼠标右键,查看代码,会进入VBA的编辑界面。
第二步:把代码粘贴进去。(复制下面的代码,从sub test()一直复制到End Sub)
Sub test()
Dim ss$, n%, fd, t$
Range("a2:d60000").Clear '先清空
Set fd = Application.FileDialog(msoFileDialogFolderPicker) '运行用户选择一个文件夹
If fd.Show = -1 Then
t = fd.SelectedItems(1) '记录这个文件夹名称
Else
Exit Sub '否则就退出程序
End If
[a1] = "命令"
[b1] = "文件名称"
[c1] = "目标文件夹"
ss = Dir(t & "\")
Do
n = n 1
Cells(n 1, 1) = "move"
Cells(n 1, 2) = ss
ss = Dir
Loop Until ss = ""
With Sheet1
.Cells.HorizontalAlignment = xlCenter
.[a1].CurrentRegion.Borders.Weight = xlThin
.Cells.EntireColumn.AutoFit '调整宽
End With
MsgBox "快学Excel提示您,查询完毕"
End Sub
这个代码是获取文件夹下所有文件名称的。达到这个效果还有其他的办法,但是我之所以用excelVBA是为了把文件名直接写入到excel中,因为实际工作中,文件名称比我这个例子要复杂得多,比如根据文件名中某个字符来确定这个文件是归类到哪个文件夹,这时候excel的函数或其它功能就能快速搞定这个事情。代码粘贴进去之后关闭VBA编辑界面。
复制代码之后的界面
第三步:在开发工具的插入这里,插入一个控件。
如果你的excel没有开发工具,可以点击文件——选项——自定义功能区——勾选开发工具——点击确认即可。