一、假设问题

在VBA中,如果直接用MkDir函数创建文件夹,只能在已有文件夹里创建一层子文件夹。如:

已存在路径:C:\A

不存在路径:C:\A\B

现在如果要创建路径:C:\A\B\D\F

这种情况下,用MkDir直接是创建不了的,当然可以用其他对象创建,但是如果非得用MkDir函数创建,也不难。

二、解决思路

1. 把需要创建的路径

C:\A\B\D\F

用“\”分割成数组,用Dir()函数依次判断每层路径

第1次判断:

C:

第2次判断:

C:\A

第3次判断:

C:\A\B

……

第n次判断:

C:\A\B\D\F

2. 每次判断路径如果存在,则不用创建;反之,用MkDir创建路径。即一级一级创建。

三、示例代码

rem 创建函数,也可以写成sub过程
Function 创建多层文件夹(aimPath As String)'定义pathArr为后面分解目标路径的数组,subPath为每次组合的判断路径Dim pathArr, subPath As String'如果路径为空,退出函数(过程),后面代码不执行If aimPath = "" Then Exit Function'pathArr数组赋值pathArr = Split(aimPath, "\")'从路径数组的下标到上标,从前向后循环各级路径,逐级判断For i = LBound(pathArr) To UBound(pathArr)'子路径为前面多项的拼接For j = 0 To isubPath = subPath & pathArr(j) & "\"NextsubPath = Left(subPath, Len(subPath) - 1)'如果用Dir()函数检测组合的路径,如果结果为空,说明路径不存在If Dir(subPath & "\") = Empty ThenIf i = 0 Then'当第判断第一级路径(即盘符层次)时,如果不存在,即盘符不存在MsgBox "盘符不存在!", vbInformation, "提示"Exit FunctionEnd IfDebug.Print subPath & " 路径不存在"'路径不存在,就用MkDir创建路径,为创建下一层路径作准备MkDir subPathEnd If'组合路径判断完一层(次)后,清空,否则下次路径就有多余的subPath = ""NextDebug.Print "完成"
End Functionrem 创建文件夹的主过程
Sub test()Dim 路径 As String路径 = "C:\A\B\D\F"'创建路径“C:\A\B\D\F”Call 创建多层文件夹(路径)
End Sub

VBA:用MkDir函数创建多层文件夹相关推荐

  1. linux c 创建多级文件夹

    由于mkdir只能创建一级文件夹自己写了一个mkdirs函数可以创建多级文件夹 #include <sys/types.h> #include <dirent.h> #incl ...

  2. Java创建多级文件夹

    Java创建多级文件夹 Java的File类坑巨多,就创建文件来说,多级创建和单级创建竟然不一样. 直接上API mkdir只能创建一个文件夹,而想创建多级文件夹需要用mkdirs,多了个s. 来来, ...

  3. R语言使用fs包的dir_create函数在指定路径下创建新的文件夹、使用file_create函数在指定文件夹下创建文件

    R语言使用fs包的dir_create函数在指定路径下创建新的文件夹.使用file_create函数在指定文件夹下创建文件 目录

  4. java filemonitor 多层_IDEA 创建多级文件夹的操作

    一般使用.来创建文件夹只能产生一个文件夹 例如:com.immer.monitor.persistence这样创建只会产生一个文件夹不能展开. 创建多级文件夹方法1 在项目那一栏设置中把Compact ...

  5. python怎么创建txt文件夹_python怎么创建一个txt文件/python创建文件夹基础教程

    python怎么创建一个txt文件 python怎么创建一个txt文方法. 如考: 1.首先内置的空闲编辑器进行编辑(单击并选择copy),如下图所示. 2.您可以下载记事本和其他编辑软件,以支持多种 ...

  6. linux里如何创建c文件夹,linux c创建文件夹

    #include #include #include #include int main() { char txtname[100]; *txtname='005';//这句将结果转变为字符串 if( ...

  7. Java基础--创建多级文件夹

    Java创建多级文件夹 /** File类中的mkdir()和mkdirs(): mkdir():只能创建一层目录. mkdirs():可以创建多层目录 */ //代码:path可以是//路径 Str ...

  8. 【 Linux 】创建一个文件夹并在此文件下创建一个c源文件

    我们需要单独创建一个文件夹来存放自己的文件,例如存放使用vim编写的c源文件,或者一个工程内的所有东西. 我们以在Linux下的home文件夹下创建一个vim文件夹,然后在此文件夹下创建一个c源文件, ...

  9. U-Boot源码目录分析(VScode工程创建及文件夹过滤)

    参考:U-Boot工程目录介绍 作者:一只青木呀 发布时间: 2020-10-21 14:47:30 网址:https://blog.csdn.net/weixin_45309916/article/ ...

最新文章

  1. android java设置颜色_java – 设置背景颜色:Android
  2. 013_序列内建函数
  3. Javascript中document.execCommand()的用法
  4. 关于 Eureka 2.x,别再人云亦云了!
  5. 迅捷路由器造成计算机无法上网,迅捷(fast)路由器连不上网怎么办?
  6. html语言文档格式,HTML文档基本格式介绍,HTML基本标记介绍?
  7. Ardupilot移植经验分享(1)
  8. 《浮图秀》如何优雅查看B站视频封面大图?
  9. allure定制测试报告,修改allure报告标题及logo
  10. Swift学习笔记(四)
  11. Python笔记(三):集合、文件、字符编码
  12. 网络协议 一 MAC地址、IP地址、子网掩码
  13. 逻辑回归(Logistic Regression):线性回归与逻辑回归的来龙去脉
  14. ES 7.6.2集群迁移(从一套ES集群迁移数据到另一套集群)
  15. 塔望食品品牌营销:叠加爆发,能量饮料与IP嗑CP的正确姿势
  16. transporter上传卡正在交付_Transporter上传卡在—正在验证 APP
  17. python爬取微博热搜
  18. 齐博cmsv7.0后台getshell
  19. 类似蘑菇街、迷尚的流瀑布图片展示Demo
  20. 大学三年计算机职业规划,大学三年人生规划

热门文章

  1. 【py小游戏系列】吃豆人,儿时的回忆
  2. 每日一练 苹果悬浮按钮 JS CSS HTML
  3. 巨杉数据库助力民生银行、恒丰银行云化架构升级
  4. 1693. 每天的领导和合伙人
  5. C# asp.net手机验证码登录,获取验证码(网页版)
  6. “0基础、学历无优势、逻辑能力一般……”能转行做程序员吗?
  7. 图形引擎实战:卡通风格人物渲染技术总结
  8. mysql去重查询并将结果放入新表
  9. 计算机考研考哪些科目
  10. DevTools开发者工具(chrome谷歌浏览器)