首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于单元格值vba创建文件夹、子文件夹、另一个子文件夹并保存自定义文件名

基于单元格值VBA创建文件夹、子文件夹、另一个子文件夹并保存自定义文件名的方法如下:

首先,需要在VBA中引用Microsoft Scripting Runtime库,以便使用FileSystemObject对象来操作文件夹和文件。

代码语言:txt
复制
Sub CreateFoldersAndSaveFile()
    Dim fso As Object
    Dim mainFolder As Object
    Dim subFolder1 As Object
    Dim subFolder2 As Object
    Dim fileName As String
    
    ' 创建FileSystemObject对象
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 获取单元格的值作为文件夹名称
    Dim folderName As String
    folderName = Range("A1").Value
    
    ' 创建主文件夹
    Set mainFolder = fso.CreateFolder("C:\MainFolder")
    
    ' 创建子文件夹1
    Set subFolder1 = fso.CreateFolder("C:\MainFolder\" & folderName)
    
    ' 创建子文件夹2
    Set subFolder2 = fso.CreateFolder("C:\MainFolder\" & folderName & "\SubFolder2")
    
    ' 保存文件到子文件夹2中
    fileName = "CustomFileName.txt"
    subFolder2.Path = "C:\MainFolder\" & folderName & "\SubFolder2"
    ActiveWorkbook.SaveAs subFolder2.Path & "\" & fileName
    
    ' 释放对象
    Set fso = Nothing
    Set mainFolder = Nothing
    Set subFolder1 = Nothing
    Set subFolder2 = Nothing
End Sub

上述代码中,我们首先创建了一个FileSystemObject对象,然后获取单元格A1的值作为文件夹名称。接着,我们创建了一个主文件夹("C:\MainFolder"),然后在主文件夹下创建了一个名为folderName的子文件夹,最后在子文件夹下创建了一个名为SubFolder2的子文件夹。

最后,我们将当前活动的工作簿保存为"CustomFileName.txt"文件,并将其保存到SubFolder2文件夹中。

请注意,上述代码中的文件夹路径和文件名可以根据实际需求进行修改。

这是一个基于VBA的解决方案,适用于在Excel中使用宏来创建文件夹、子文件夹和保存文件。对于其他编程语言,可以根据相应的文件系统操作函数来实现相同的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

打破Excel与Python的隔阂,xlwings最佳实践

"myproject" 是你的项目名字, 你可以修改为任何合法的名字, 此时你会发现项目文件夹中生成了一个名为 "myproject" 的文件夹,其中有文件: myproject.xlsm,这是带 vba...---- 直觉理解运行机制 目前为止,我们没有编写一句 vba 代码,只是简单定义出一个加载数据的 Python 自定义函数,就可以在 Excel 上使用公式实现效果。...,xlwings 在按照 Python 文件中定义的函数,生成了对应的 vba 代码 其中也能看见,调用时需要 Python 文件名,函数名字,和其他的参数 vbe 是 编写 vba 代码的界面。...Python 文件,在 Excel 上无须点击"导入函数"按钮,只要公式有刷新(比如修改公式引用到的单元格),就能看到最新结果: 只有10行结果 你可能会觉得每次修改都点一下导入按钮,万无一失。...): 保存文件后,记得"导入函数" 在 Excel 文件 myproject.xlsm 中,创建一个新的工作表(示例中名字为 Sheet2),执行这个公式: 到界面工作表,为 B1 单元格设置数据有效性

5.1K50

使用VBA重命名文件:5个代码示例

RenameFile() Name "D:\完美Excel\date.xlsx" As _ "D:\完美Excel\我的文章\date-重命名.xlsx" End Sub 示例2:基于单元格重命名文件...如下图1所示,单元格C2中是当前文件名称,单元格C4中是新文件名称。...下面的VBA自定义函数接受两个参数:现有文件路径和新文件路径。...图2 TRUE表示以单元格C2中命名的文件已成功重命名为单元格C4中的文件。如果我们再次运行该函数,它将显示FALSE,因为文件已经重命名。...可能的错误 如果试图重命名不存在的文件或文件夹路径,则会触发错误:运行时错误'53’:未找到文件。如果新文件名与现有文件名相同,则会触发以下错误:运行时错误’58’:文件已存在。

1.9K30

Python让Excel飞起来:使用Python xlwings实现Excel自动化

基本上,我们是在向单元格中写入字符串。这里,我们要在另一列中计算x轴的指数值。在下面的代码中,我们使用了“f-string”,这是从Python 3.6开始的一种改进的字符串格式语法。...plt.ylabel('y-axis') sheet.pictures.add(fig,name='MyPlot',update=True) 图9 最后,正如我们对每个Excel电子表格所做的那样,我们必须保存我们的工作关闭文件...接着,在Excel中按Alt+F11组合键,打开VBA编辑器。 在VBA编辑器中,单击菜单“工具->引用”,找到选取“xlwings”前的复选框,如下图10所示,然后单击“确定”按钮。...接下来,保存VBA代码,现在我们要在Excel工作表中创建一个按钮。返回Excel界面,在“开发工具”选项卡,单击“插入->按钮”,指定刚创建的宏Rand_10。...2.键入用户定义的函数时,单元格中会显示“Object Require”(对象要求)。确保在VBA编辑器菜单“工具->引用”中选取了“xlwings”,并将更改保存到相应的Excel文件中。

8.2K41

ExcelVBA文件操作-选择文件夹获取文件列表

ExcelVBA文件操作-选择文件夹获取文件列表 近期学习了 =====start====== 1.ExcelVBA文件操作-获得文件夹中的所有文件夹 2.ExcelVBA-打开对话框取得文件夹路径...2种方法 =====end====== 今天要学习 注意标题,有顺序的哦: 1.先打开对话框==2.选择文件夹==3.获取文件列表 1-2两步可用我们的自定义函数 '打开对话框,选择,取得文件夹路径,...,返回文件名列表(不包含文件夹)Function GetFolderFiles(folderspec As String) Dim sfso As Object, sfld, sff, sffs...,返回文件名列表(不包含文件夹) Function GetFolderFiles(folderspec As String) Dim sfso As Object, sfld, sff, sffs...ExcelVBA-打开对话框取得文件夹路径2种方法 Excel VBA取白色单元格内容黄色的单元格的Address ExcelVBA随机生成不重复的N个N位数文本 ExcelVBA字典的输出 ExcelVBA

48720

Excel公式技巧49: 提取文件名

学习Excel技术,关注微信公众号: excelperfect 在工作表中有一系列完整文件路径清单,现在要提取其中的文件名称,由于文件夹中可能还有文件夹,因此文件路径长短不同,而我们必须找出其最后一个...“\”的位置,才能实现对文件名的提取。...然而,Excel中没有像VBA一样的InstrRev函数,可以实现从右向左的查找。这样,我们可以自定义一个这样的函数,在Excel工作表中使用,我们也可以使用一些函数技巧来实现这样的目的。...如下图1所示的工作表,文件路径长短不同,我们要提取其文件名称。 ? 图1 首先,找到最后一个“\”的位置。...在单元格B1中输入数组公式: =MATCH("\",MID(A1,LEN(A1)+1-ROW(INDIRECT("1:"& LEN(A1))),1),0) 得到: 6 即从右向左数第一个“\”的位置是

1.7K20

ExcelVBA文件操作-选择文件夹(含文件夹)获取所有文件列表

获取文件夹(含文件夹)内的文件列表 【问题】 选择文件夹(含文件夹)获取所有文件列表 【解决思路】 第【1-3】步:可以用自定义函数(PS:此函数返回要进行是否为空的判断,如果为空要exit sub...SelectGetFolder = "" End If End WithEnd Function 第【4】步:得到文件夹(包含文件夹)的路径 也可以用自定义函数(PS:返回的数组是以...,返回文件名列表(不包含文件夹)Function GetFolderFiles(folderspec As String) Dim sfso As Object, sfld, sff, sffs...,返回数组=本文件夹文件名列表(不包含文件夹)Function GetFolderFiles(folderspec) Dim sFso As Object, sfld, sff, sffs...ExcelVBA文件操作-获得文件夹中的所有文件夹 ExcelVBA-打开对话框取得文件夹路径2种方法 Excel VBA取白色单元格内容黄色的单元格的Address ExcelVBA随机生成不重复的

66230

VBA实用小程序72:遍历文件夹(和文件夹)中的文件

很多时候,我们都想要遍历文件夹中的每个文件,例如在工作表中列出所有文件名、对每个文件进行修改。VBA给我们提供了一些方式:(1)Dir函数;(2)File System Object。...图1 后期绑定 后期绑定不需要任何特定操作来启用FSO库,确保在VBA代码中需要时打开库。 遍历文件夹中所有文件 下面的示例代码将文件名打印到立即窗口,很容易修改这些代码以更适合你的具体情况。...当文件存储在文件夹中时,可能就需要一些技巧了。...现在需要找到一种方法来钻取到这些文件夹中。我们将使用上述相同的Dir和FSO方法。为了确保这些代码可以处理任意数量的文件夹,宏实际上会调用自身(一种称为递归的技术)。...LoopAllSubFolders2(FSOFolder As Object) Dim FSOSubFolder As Object Dim FSOFile As Object '遍历每个子文件夹

9.9K30

VBA汇总多个Excel文件数据

1、需求: 将某个文件夹下,所有Excel文件及文件夹下的Excel文件内容,复制到一张汇总表。...还好的是以前干这活的同事已经把表格规范了,每个子公司都会严格按照规范报,子公司也会收集好子公司的表,并且把自己的子公司的表都单独放在1个文件夹。 你看了看以前年度的数据,大概是这个样子: ?...你估计上千个文件夹,弄个3、4天应该也可以了。 3、代码实现 让我们看看如何用VBA代码1分钟内搞定。...FileSystemObject方法是对象形式的,好理解,只要能理解递归调用文件夹: Function GetFilesFSO(path As String, RetFiles() As String...Preserve RetFiles(k) As String RetFiles(k) = file.path k = k + 1 Next file '遍历文件夹

2.6K31

对象Workbook Worksheet Range的使用

1、需求: 有1个工作簿,包含3个工作表,每个工作表的A列有内容,现要求根据工作表的名称来创建文件夹,再根据每个工作表的A列内容创建Workbook,保存在对应的文件夹内。 ?...的Value创建Workbook,保存 再理一下需要用到的功能: 定位Range范围,这个经常使用Excel应该会这么一个操作:选中1个单元格后,按住Alt加方向键,会快速定位,这个不好描述,自己可以试着操作一下...创建文件夹MkDir 完整代码: Sub vba_main() Dim i As Long '循环每一个工作表 For i = 1 To Worksheets.Count...Dim arr() As Variant arr = sht.Range("A1").Resize(i_row, 1).Value '创建文件夹 VBA.MkDir ThisWorkbook.Path...wk.SaveAs ThisWorkbook.Path & "\" & sht.Name & "\" & VBA.CStr(arr(i, 1)) '关闭工作簿保存修改

1.6K40

VBA专题10-25:使用VBA操控Excel界面之一个示例程序

1.4 活动工作表的滚动区域限制为某个单元格区域(A4:H100)。 1.5 一个自定义选项卡(名为Custom)被激活。...能够从单元格上下文菜单中访问自定义控件(名为Remove USD)。 要创建这个程序,执行下列步骤: 1. 创建一个新工作簿,将其保存为启用宏的工作簿。 2....复制粘贴下面的XML代码: ? ? 8. 单击工具栏中的Validate按钮来检查是否有错误。 9. 保存关闭该文件。 10. 在Excel中打开该文件。对于错误消息单击“确定”。 11....插入标准的VBA模块,复制粘贴下列VBA代码: Public myRibbon As IRibbonUI '库中图像的数量 Dim ImageCount As Long '图像的文件名 Dim ImageFilenames...Dim Filename As String Filename = Dir("C:\Photos\*.jpg") '遍历文件夹中的所有jpg文件 '使用jpg的文件名填充

2.2K10

VBA: 通过Dir函数查找指定文件

1 Dir函数的语法 2 应用示例 2.1 获取指定路径文件的名称 2.2 判断指定路径的文件夹是否存在(不存在则创建它) 2.3 获取指定路径文件夹内所有文件和文件夹的名称 2.4...获取指定路径文件夹内的所有文件名称 2.5 获取指定路径文件夹内所有文件夹的名称 2.6 获取指定路径文件夹内第一个txt文件的名称 2.7 获取指定路径文件夹内所有txt文件的名称 1...attributes参数可以选择以下或者以下的和。 (1)文件和文件夹具有类似只读,隐藏,系统和档案的特点。这些特点就是属性。...f一开始不存在,因此,运行代码后,会先创建文件夹f,然后在立即窗口中显示: A folder has been created with the name f 2.3 获取指定路径文件夹内所有文件和文件夹的名称...(2)Dir函数只能返回第一层的文件夹文件名文件夹下的文件和文件夹不返回。

5.9K21

Python按照遥感影像条带号遴选对应的栅格文件

其中,这里所有的遥感影像都保存在一个大文件夹下,而这一大文件夹下还有多个子文件夹,具体遥感影像就存在于文件夹中;如下图所示。   ...此外,每一个子文件夹的命名也是和遥感影像的分幅条带号对应的,比如43LCC这一个子文件夹就是保存了UTM编号为43的网格内的全部遥感影像。...同时,在每一个遥感影像文件的文件名中,都有分幅条带号这一字段;例如,打开43LCC这一文件夹,如下图所示。   ...随后,我们通过xlrd.open_workbook()函数打开.xls格式的表格文件,读取其中的数据获取其行数row_num;接下来,我们即可对这一表格文件的单元格数据加以遍历,也就是代码中的第1个for...这里还有一个需求,因为我们这里保存的是多时相遥感影像数据(即每一个分幅条带号对应着多个不同时相的遥感影像文件),因此我们希望在目标文件夹中,同样用各个分幅条带号作为名称,创建个子文件夹;然后将当前分幅条带号对应的全部遥感影像数据放入这一文件夹

15810

如何将重复工作实现自动化?

VBA的作用包括: (1)自定义函数、公式,实现特殊需求 (2)自动化批量处理,提高工作效率 (3)结合插件功能,实现小型软件管理 来个实际的应用案例。...打开Excel,点选左上角「文件」 点选左下角「选项」 点选左侧栏的「自定义功能区」 点选右侧「开发工具」 打钩,「确定」 检查「开发工具」是否开启 这么厉害的大杀器,不懂为什么要隐藏这么深...举个例子,我们规定sheet1中单元格A1单元格为「文本」,如果我们输入「数值」,Excel将自动运行程序检测所填内容是否符合设定的要求(类似于Excel的「数据验证」功能) 模块(标准代码):该类代码我们常见的用途是以按钮等形式点击就可运行的程序...(3)VBA案例 案例1:自定义「日期季度转换函数」 上述的代码是自定义了一个「日期转换季度」函数,这个案例之前出现在实际的工作场景中,当然了这个公式是简化版的。...下面这个案例是批量更改指定路径下所有文件名 上面这个批量「更改指定路径下所有文件名」的程序,由两个程序组成:文件名提取和文件名更换,可以针对指定路径文件夹文件夹在哪里)下任何类型文件,更改为指定名称

21330

如何将重复工作实现自动化?

VBA的作用包括: (1)自定义函数、公式,实现特殊需求 (2)自动化批量处理,提高工作效率 (3)结合插件功能,实现小型软件管理 来个实际的应用案例。...打开Excel,点选左上角「文件」 点选左下角「选项」 点选左侧栏的「自定义功能区」 点选右侧「开发工具」 打钩,「确定」 检查「开发工具」是否开启 这么厉害的大杀器,不懂为什么要隐藏这么深...举个例子,我们规定sheet1中单元格A1单元格为「文本」,如果我们输入「数值」,Excel将自动运行程序检测所填内容是否符合设定的要求(类似于Excel的「数据验证」功能) 模块(标准代码):该类代码我们常见的用途是以按钮等形式点击就可运行的程序...(3)VBA案例 案例1:自定义「日期季度转换函数」 上述的代码是自定义了一个「日期转换季度」函数,这个案例之前出现在实际的工作场景中,当然了这个公式是简化版的。...下面这个案例是批量更改指定路径下所有文件名 上面这个批量「更改指定路径下所有文件名」的程序,由两个程序组成:文件名提取和文件名更换,可以针对指定路径文件夹文件夹在哪里)下任何类型文件,更改为指定名称

2.8K10

个人永久性免费-Excel催化剂功能第22波-Excel文件类型、密码批量修改,补齐PowerQuery短板

数据结果可随时刷新,无需重复配置 PowerQuery的数据处理和VBA、VSTO等插件的处理方式有个本质区别在于,PowerQuery处理后的数据,可保留的操作步骤过程元数据,若只是简单修改一些文件名...数据读取速度更快 因PowerQuery读取原数据,是以数据驱动的形式读取,非一般插件的通过打开工作薄,读取单元格,赋值给数组、再数组返回给单元格等步骤,保守估计PowerQuery读取的速度更快一些。...在Excel催化剂的【Excel文件格式转换】功能中,很好地破解以上两个难题 具体操作如下 步骤一 选择要处理的Excel文件全路径 对同一个文件夹下的所有文件的路径提取,使用第4波介绍的自定义函数,轻松可获取得到...获取某个文件夹下的所有文件名全路径 同时,利用Excel催化剂开发的自定义函数,还可做许多的关于文件相关的处理 ?...仅获取文件名,不含后缀名 步骤二 构造成生成的新文件的全路径名称 若文件类型需转换,改变目标文件的后缀名即可 若想转换新生成的文件另存为其他路径上,只需修改保存的路径即可 ?

1.1K30

Excel VBA编程

和select方法选中单元格 copy方法复制单元格区域 cut方法剪切单元格区域 用delete方法删除指定的单元格 操作对象的一些例子 根据需求创建工作簿 判断某个工作簿是否已经打开 判断文件夹中是否存在指定名称的工作簿文件...向未打开的工作簿中输入数据 隐藏活动工作表外的所有工作表 批量新建指定名称的工作表 批量对数据进行分离,保存到不同的工作表中 将多张工作表中的数据合并到一张工作表中 将工作簿中的每张工作表都保存为单独的工作簿文件...事件:更改任意工作表中的单元格时发生 常用的workbook事件 不是事件的事件 application对象的onkey方法 Application对象的OnTime方法 让文件自动保存 设置自定义的操作界面...如想删除B3所在的整行单元格,应将代码写为: range("B3").entirerow.delete 操作对象的一些例子 根据需求创建工作簿 利用VBA创建一个符合自己需求的工作簿,并将其保存到指定的目录中...,这就需要用到VBA中的另一类常用对象——Userform对象。

45.1K21

VBA: 批量重命名文件夹文件名

文章背景: 在工作中,有时需要将一些文件名称修改成特定的名称,如果文件比较多的话,手动修改费时费力,下面通过VBA代码实现批量操作。...Name 可以在驱动器之间移动文件,但只有当 newpathname 和 oldpathname 位于同一驱动器上时,它才能重命名现有目录或文件夹。Name 无法创建新文件、目录或文件夹。...2.1 批量修改文件夹的名称 (1) 获取所有文件夹 表1 复制文件夹: Option Explicit Sub getSubFolderName() '给定父文件夹名称,获取全部文件夹名称...Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub (2) 复制文件夹删除旧的文件夹...Sub RenameFolder() '复制文件夹到新的路径,删除旧的文件夹

8.2K31

VBA: 利用FileSystemObject对象来处理文件

1 创建FSO对象 1.1 直接创建法 1.2 引用法 2 借助FSO可以获取的对象 3 FSO对象的属性 4 应用示例 4.1 检查文件或文件夹是否存在 4.2 基于给定路径,创建文件夹...4.3 获取文件夹内所有文件的名称 4.4 获取文件夹内所有文件夹的名称 4.5 获取文件夹及其文件夹内所有文件的名称 4.6 拷贝文件 4.7 拷贝文件夹 1 创建FSO对象 1.1...4.2 基于给定路径,创建文件夹 Sub CreateFolder() Dim MyFSO As FileSystemObject Set MyFSO = New FileSystemObject...(2)也可以通过VBA的Dir函数判断文件夹是否存在;若不存在,则通过MkDir函数创建新的文件夹。...End Sub (1)将文件夹d内所有的文件夹拷贝到文件夹a内,本例中文件夹d内只有一个子文件夹,也就是e。

1.4K20
领券