今天我们聊点简单的VBA知识,比如如何批量提取文件名称,虽然提取的方法很多,但是VBA可以动态刷新更加方便!想要提取文件名,还要做到自动化,那么最好让用户自己选择路径,那么我们就先来解决选择路径的难题!
选择文件夹,我们用 Application.FileDialog 对象处理,这也是常用的一个对象,如果你是0基础抄一下,百度查查资料补充一下,也可以看我们系列教程!很多同学可能经常看到.show=-1的判断,不太懂,经常有问的,其实就是True的简写,VBA中True=-1,很多Excel同学,知道一般非0为True,但是VBA中不是,具体这样处理,是历史版本遗漏下来的,感兴趣的可以查查!下面我们再看一下本节的核心,获取工作表名称。本节为了简化,我们使用比较基础的DIR函数来处理,以后大家基础好了,也可以使用更强的FSO对象处理!先来看一下实现的效果,完全OK!下面我们放要点2的代码并做说明!
为了方便大家收藏和复用,代码中我已经添加了完整的注释!Do循环属于基础内容,简单入门后完全OK!
今天的内容就到这里,我们的VBA全系列教程,感兴趣的也可以了解一下!
Option Explicit
'>> 作者:E精精
Sub 动态获取文件名称()
'--要点1:用户选择文件夹
Dim sPath As String
With Application.FileDialog(msoFileDialogFolderPicker)
'用户选择文件夹
If .Show = True Then
'显示文件夹
sPath = .SelectedItems(1)
Else
'取消退出
Exit Sub
End If
End With
'--要点2:批量获取工作表名称
Dim sfile As String
'获取Excel文件,根据需求修改后缀名
sfile = Dir(sPath & "\*.xls*")
Dim i As Long
'循环处理
Do While Len(sfile) > 0
i = i + 1
'写入当前表的第一列中
Cells(i, 1) = sfile
'下一个文件
sfile = Dir
Loop
MsgBox "处理完毕~"
End Sub