VBA:用MkDir函数创建多层文件夹
一、假设问题
在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函数创建多层文件夹相关推荐
- linux c 创建多级文件夹
由于mkdir只能创建一级文件夹自己写了一个mkdirs函数可以创建多级文件夹 #include <sys/types.h> #include <dirent.h> #incl ...
- Java创建多级文件夹
Java创建多级文件夹 Java的File类坑巨多,就创建文件来说,多级创建和单级创建竟然不一样. 直接上API mkdir只能创建一个文件夹,而想创建多级文件夹需要用mkdirs,多了个s. 来来, ...
- R语言使用fs包的dir_create函数在指定路径下创建新的文件夹、使用file_create函数在指定文件夹下创建文件
R语言使用fs包的dir_create函数在指定路径下创建新的文件夹.使用file_create函数在指定文件夹下创建文件 目录
- java filemonitor 多层_IDEA 创建多级文件夹的操作
一般使用.来创建文件夹只能产生一个文件夹 例如:com.immer.monitor.persistence这样创建只会产生一个文件夹不能展开. 创建多级文件夹方法1 在项目那一栏设置中把Compact ...
- python怎么创建txt文件夹_python怎么创建一个txt文件/python创建文件夹基础教程
python怎么创建一个txt文件 python怎么创建一个txt文方法. 如考: 1.首先内置的空闲编辑器进行编辑(单击并选择copy),如下图所示. 2.您可以下载记事本和其他编辑软件,以支持多种 ...
- linux里如何创建c文件夹,linux c创建文件夹
#include #include #include #include int main() { char txtname[100]; *txtname='005';//这句将结果转变为字符串 if( ...
- Java基础--创建多级文件夹
Java创建多级文件夹 /** File类中的mkdir()和mkdirs(): mkdir():只能创建一层目录. mkdirs():可以创建多层目录 */ //代码:path可以是//路径 Str ...
- 【 Linux 】创建一个文件夹并在此文件下创建一个c源文件
我们需要单独创建一个文件夹来存放自己的文件,例如存放使用vim编写的c源文件,或者一个工程内的所有东西. 我们以在Linux下的home文件夹下创建一个vim文件夹,然后在此文件夹下创建一个c源文件, ...
- U-Boot源码目录分析(VScode工程创建及文件夹过滤)
参考:U-Boot工程目录介绍 作者:一只青木呀 发布时间: 2020-10-21 14:47:30 网址:https://blog.csdn.net/weixin_45309916/article/ ...
最新文章
- android java设置颜色_java – 设置背景颜色:Android
- 013_序列内建函数
- Javascript中document.execCommand()的用法
- 关于 Eureka 2.x,别再人云亦云了!
- 迅捷路由器造成计算机无法上网,迅捷(fast)路由器连不上网怎么办?
- html语言文档格式,HTML文档基本格式介绍,HTML基本标记介绍?
- Ardupilot移植经验分享(1)
- 《浮图秀》如何优雅查看B站视频封面大图?
- allure定制测试报告,修改allure报告标题及logo
- Swift学习笔记(四)
- Python笔记(三):集合、文件、字符编码
- 网络协议 一 MAC地址、IP地址、子网掩码
- 逻辑回归(Logistic Regression):线性回归与逻辑回归的来龙去脉
- ES 7.6.2集群迁移(从一套ES集群迁移数据到另一套集群)
- 塔望食品品牌营销:叠加爆发,能量饮料与IP嗑CP的正确姿势
- transporter上传卡正在交付_Transporter上传卡在—正在验证 APP
- python爬取微博热搜
- 齐博cmsv7.0后台getshell
- 类似蘑菇街、迷尚的流瀑布图片展示Demo
- 大学三年计算机职业规划,大学三年人生规划