咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公
  • 系统环境:Windows 10
  • Excel:2016版本


这个系列集锦一些常用的功能模块,在一些项目中会穿插应用

今天讲讲与文件夹相关的一些操作

主要是使用fso及VBA自带的一些函数



Part 1:准备工作

  1. FSO引入

Set fso = CreateObject("Scripting.FileSystemObject")




Part 2:常用功能

  • 判断文件夹是否已经存在,存在则获取文件夹对象,不存在则创建文件夹

If fso.FolderExists(NewFolderName) Then Set myfolder = fso.Getfolder(NewFolderName) Else Set myfolder = fso.createfolder(NewFolderName) End If

  • 判断文件夹是否已经存在,其中vbDirectory不能省略

If Dir(CurrentDir & NewFolder, vbDirectory) <> "" Then MsgBox "文件夹已存在" End If

  • 以文件夹的绝对地址创建文件夹

CurrentDir = ThisWorkbook.Path & "" NewFolder = "test" MkDir CurrentDir & NewFolder

  • 删除文件夹,含有子文件一并删除

fso.DeleteFolder (NewFolderName)

  • 删除文件夹,要求文件夹必须为空。若存在文件,可以配合Kill一起使用

RmDir CurrentDir & NewFolder

  • 重命名文件夹,Name 原名称 as 新名称

Name CurrentDir & NewFolder As CurrentDir & "test6"

  • 复制文件夹,fso.CopyFolder 原地址 , 新地址

fso.CopyFolder CurrentDir & "test", CurrentDir & "test8"

  • 遍历文件夹内文件,Wenjian.Name获得是文件的名称(含后缀),但不含绝对地址

For Each Wenjian In fso.GetFolder(CurrentDir).Files WenjianName = Wenjian.Name Next

  • 遍历文件夹内子文件夹,Wenjian.Name获得是文件夹的名称,但不含绝对地址

For Each Wenjianjia In fso.GetFolder(CurrentDir).SubFolders WenjianjiaName = Wenjianjia.Name Next



以上,为本次的介绍内容,下回见。

本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条