小伙伴们,之前有跟大家分享过Power Query获取文件夹内文件清单及其属性的方法【Excel快速获取文件列表及文件属性】。今天教大家通过VBA代码来实现同样的功能,提取文件夹内的文件信息更加灵活,只要选择对应的文件夹即可。

实现效果

操作方法:

1. 在Excel界面按快捷键ALT+F11进入VBE界面。

2. 在VBE工程里面插入一个模块。

3. 将以下代码复制到模块中。

4. 关闭VBE界面,返回Excel界面,从开发工具中找到表单控件,插入一个按钮。

5. 按钮指定宏[GetFileList]即可。

详细的操作过程

以下是实现本次功能要用到的VBA代码,有详细注解,应用非常广泛,建议收藏备用。

Sub GetFileList() '定义文件夹路径变量 Dim PathSht As String '清空模板文件里面的数据 ActiveSheet.Range("A3:H65536").Clear '调用文件路径获取方法,弹出文件夹选择对话框 With Application.FileDialog(msoFileDialogFolderPicker) If .Show Then PathSht = .SelectedItems(1) Else Exit Sub End With '先获取当前文件夹内的文件 GetFileFromFolder PathSht & "" '获取子文件夹内的文件 GetFolderList PathShtEnd Sub'方法一:从文件夹里面提取文件和文件信息Function GetFileFromFolder(folder_name) '定义文件操作对象 Dim fso As Object '设置文件操作对象 Set fso = CreateObject("Scripting.FileSystemObject") '所有文件类型,如果只要Excel文件则修改为 FileType = "*.xls*" FileType = "*.*" '查找第一个文件 sPath = Dir(folder_name & FileType) '循环到没有文件为止 Do While Len(sPath) '将文件对象赋值给objfile,方便后续获取对应属性数据 Set objfile = fso.GetFile(folder_name & sPath) '当前活动工作表 With ActiveSheet '定位到第一个空行位置 endrow = .Range("A65536").End(xlUp).Row + 1 'A列存放文件夹名称 .Range("A" & endrow) = folder_name 'B列存放文件名称 .Range("B" & endrow) = sPath 'C列存放文件类型 .Range("C" & endrow) = objfile.Type 'D列存放文件大小 .Range("D" & endrow) = FormatNumber(objfile.Size / 1024, -1) & "K" 'E列存放文件创建时间 .Range("E" & endrow) = objfile.DateCreated 'F列存放文件修改时间 .Range("F" & endrow) = objfile.DateLastModified 'G列存放文件访问时间 .Range("G" & endrow) = objfile.Datelastaccessed 'H列创建超链接,支持点击打开文件 ActiveSheet.Hyperlinks.Add Anchor:=.Range("H" & endrow), Address:=folder_name & sPath, ScreenTip:="单击打开" & sPath, TextToDisplay:="打开文件" End With '查找下一个文件 sPath = Dir LoopEnd Function'方法二:递归方式循环遍历子文件夹Function GetFolderList(strFolder) '定义文件夹操作对象 Dim fso, objFolder, objSubFolder '设置文件操作对象 Set fso = CreateObject("Scripting.FileSystemObject") '判断文件夹是否存在 If fso.FolderExists(strFolder) Then '定义为父文件夹 Set objFolder = fso.getFolder(strFolder) '定义为子文件夹 Set objSubFolder = objFolder.subFolders '每一个在父文件夹中的子文件夹 For Each oSubFolder In objSubFolder '从文件夹里面获取文件 GetFileFromFolder oSubFolder & "" '继续获取当前文件夹的子文件夹 GetFolderList oSubFolder.Path Next End IfEnd Function

最后提个醒:

别忘了把你的Excel文件另存为加载宏工作簿,这样才可变成永久可以的工具。

vba cad 获取宏的路径_VBA批量创建文件目录及链接,建议收藏备用相关推荐

  1. CorelDRAW VBA - 读取XML文件,根据内容批量创建图形

    目的 这篇教程将教会你如何使用 CorelDRAW VBA 来读取 XML 文件,并通过读取的内容来动态创建指定宽度和高度的矩形. 准备一个XML文件 打开记事本,粘贴以下内容,然后保存文件,文件名输 ...

  2. input file详细介绍、更改css样式、获取图片地址、彻底清空上传文件(建议收藏)

    文章目录 博客内容 介绍 input 全部类型 file 类型 属性 accept属性 multiple属性 事件监听 css样式更改 上传图片文件,获取图片地址 input type file上传文 ...

  3. 这两个工具能批量PDF转图片,建议收藏使用

    你们有没有遇到过有时需要使用PDF文档格式中的某个页面或某张图片的情况呢? 大部分人通常为了方便会选择截图取用,但是截图保存的很多图片基本画质都不怎么清晰.如果我们想要图片高清,还是得使用专业的转换工 ...

  4. 简单五步,实现物联网批量创建设备

    产品指某一类设备,创建完产品后,需要为具体设备创建身份.您可以创建单个设备,也可以批量创建设备.本文为您讲述如何批量创建设备. 操作步骤 1.登录物联网平台控制台. 2.在左侧导航栏,选择设备管理 & ...

  5. [Linux基础]Linux批量创建多个用户的方法(附:创建后切换用户变成-bash4.2-$的解决方法)

    导航目录 一.批量创建多个用户 1.创建用户组 2.按照以下格式创建文件 3.使用`newusers` 命令运行 4.运行成功,可使用`tail -n 5` 查看`/etc/passwd`信息 二.异 ...

  6. Excel VBA 打开对话框,获取文件夹路径

    Excel 打开对话框,获取文件夹路径 'Window「参照」ダイアログで選択したItem 名を取得 Public Function GetFolderName(ByVal DialogType As ...

  7. 提取文件名+复制+改名+批量创建文件程序(Excel VBA版)

    用Excel VBA做了个文件处理小工具,集合了文件名提取.文件复制.改名及批量创建文件.搜索复制文件的功能. (注:如果是规则改名,建议使用 拖把更名器,使用起来更直观,下载链接中附拖把更名器程序) ...

  8. Excel 2010 VBA 入门 064 按照关键字批量创建超链接

    目录 示例 实现代码 Hyperlink对象 创建超链接 删除超链接及访问超链接 创建超链接打开指定的宏代码 示例 如图所示,该表为某公司资产负债表以及关于报表的说明.为了方便阅读,现希望能够用VBA ...

  9. Revit (1) - CAD - 获取图层

    系列文章目录 Revit开发中异常记录 Revit (1) - CAD - 获取图层 Revit (2) - CAD - 获取CAD文字 Revit (3) - 二开 -创建柱子 Revit (4) ...

最新文章

  1. 软考信息安全工程师备考笔记2:第二章密码学基础与应用备考要点
  2. 苹果或于2020年开售iPhone SE2
  3. 【设计模式】适配器模式(Adapter Pattern)
  4. 在java中对字符串的一些实现处理
  5. android qq robot,安卓qq授权登陆源代码
  6. Shortest Prefixes(poj 2001)
  7. 带你了解常见的编码表,以及他们自己的关系.
  8. OSEK网络管理入门
  9. Sniffer Pro 4.7.5注册不成功问题(unable to communicate with server)
  10. 倾斜摄影发展历程简介
  11. 什么是gzip?为什么要用gzip?使用gzip的优势和劣势是什么?需要哪些岗位进行配合才能够实现gzip内容的应用?
  12. 在VS中如何生成moc文件
  13. awl 多线程SYN***工具0.2版[转]
  14. BASE64Encoded() 方法报错说方法未定义
  15. 抱抱脸(hugging face)教程-中文翻译-任务总结
  16. RECEIVED SIGNAL 15
  17. Luogu 月赛 P5238 整数校验器
  18. SOUI视频教程 官方论坛
  19. 判断滚动条是上滑还是下滑
  20. 如何将多个快递物流的退回签收件归类为已签收

热门文章

  1. Dependency injection in .NET Core的最佳实践
  2. Cactus在jexus上安装
  3. [转]敏捷开发之Scrum扫盲,及敏捷开发中XP与SCRUM的区别
  4. Navicat Premium 64 bit 12.1.25
  5. C#输入姓名或者拼音码(姓名的首字母,大小写均可)进行快速模糊查找
  6. LeetCode之Happy Number
  7. Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤
  8. 【前端就业课 第一阶段】HTML5 零基础到实战(四)伪类与伪元素
  9. 看得懂的外观设计模式 python3 实现
  10. clob字段怎么导出_Oracle 11g及12c+版本下为啥有些表不能exp导出?