获取当前文件
- 获取当前文件名(不含路径):
ThisWorkbook.Name
- 获取当前文件名(不含扩展名):
Left(ThisWorkbook.Name, InStr(ThisWorkbook.Name, ".") - 1)
- 获取当前文件完整路径:
ThisWorkbook.Path & "\" & thisworkbook.Name
文件夹操作
Dir[(pathname[, attributes])] 函数
attributes 参数的设置可为:
vbNormal 0 (缺省) 指定没有属性的文件。
vbReadOnly 1 指定无属性的只读文件
vbHidden 2 指定无属性的隐藏文件
VbSystem 4 指定无属性的系统文件 在Macintosh中不可用。
vbVolume 8 指定卷标文件;如果指定了其它属性,则忽略vbVolume在Macintosh中不可用。
vbDirectory 16 指定无属性文件及其路径和文件夹。
vbAlias 64 指定的文件名是别名,只在Macintosh上可用。
- 返回文件夹:Dir(pathname, vbDirectory)
- 返回文件(默认):Dir(pathname)
- pathname 可使用通配符 *?等
- 重复执行 Dir(pathname)会重置函数,在循环体外写一条即可,循环体内 用 Dir() 即可,此时,指针会往下走。
正则查找文件夹的文件名
Sub test()
Dim FileName$FileName = "D:新建文件夹-dir"
'指定文件夹路径
f = Dir(FileName & "" & "*.xlsx")
'指定要遍历的文件类型,以.xlsx结果,也可以换成.xls(07版本的文件)
Do While f <> ""
'便利开始
Workbooks.Open FileName & "" & f '打开 '
Debug.Print f f = Dir() '循环下一个文件
ActiveWorkbook.Close True '关闭当前打开的文件
LoopEnd Sub '结束程序