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

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

69f664f387511ba0c9ec49c2dd079fd3.gif

实现效果

操作方法:

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

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

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

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

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

6a3be18dd28f79de2485a62f65885a16.gif

详细的操作过程

以下是实现本次功能要用到的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文件另存为加载宏工作簿,这样才可变成永久可以的工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纯JDBC系统的开发随想

纯JDBC系统的开发随想前两天,两个个纯后台应用项目在没有充分论证的情况下使用了SpringiBatis实现,从需求到实现、测试历经两天时间,实际代码开发时间是8小时,时间比较短,因为有以前的代码积累。再加上对框架熟烂于心&…

机器信息MachineInfo

不管是业务功能需要还是开发诊断需要,经常需要用到CPU内存硬盘等信息,或者需要主板编号和系统编号做唯一设备标识。于是设计了机器信息类 MachineInfo ,支持Windows、Linux、Raspberry等。Nuget包:NewLife.Core源码地址&#xff1…

学习 Python 编程的 19 个资源

编译:wzhvictor,英文:codecondo segmentfault.com/a/1190000004187319用Python编写代码一点都不难,事实上它一直被赞誉为最容易学的编程语言。如果你准备学习web开发, Python是一个不错的开始,甚至想做游戏…

1155低功耗cpu排行_比拼浮点运算速度,超算排行榜是这样“算”出来的

本报记者 过国忠 通 讯 员 梅国英 吴 婷6月17日,新一期全球超算500强榜单出炉,入选500强的所有超算浮点运算速度都突破每秒千万亿次,中国超算也在前四占有两席位置。普通计算机用指令运算速度衡量计算性能,而超算通常用浮点运算速…

mysql 用户概念_传输概念 – db对象的用户/组/权限从mysql到postgresql

这似乎比stackoverflow更适合这里,所以这里:我一直在使用mysql一段时间以来,因为在大多数便宜的虚拟主机上,它是提供的数据库.但是,现在我开始认真开发Web应用程序,我一直在本地使用postgresql作为我的数据库,以便在我感到舒服时在客户端安装上正确使用它.我唯一没有…

在CSDN上的第一篇博客

大学三年在保研成功那一天算是画上了一个圆满的句号,但是这个句号并不代表我在大学里面学到了多少知识。相反,我常常为自己匮乏的专业知识而感到灰心丧气,甚至开始怀疑自己是否适合做IT这一行。大学期间成绩虽然不错,但是那仅仅只…

使用 Tye 辅助开发 k8s 应用竟如此简单(五)

使用 Tye 辅助开发 k8s 应用竟如此简单(一)使用 Tye 辅助开发 k8s 应用竟如此简单(二)使用 Tye 辅助开发 k8s 应用竟如此简单(三)使用 Tye 辅助开发 k8s 应用竟如此简单(四)续上篇&a…

详解冒泡排序

转自:静默虚空http://www.cnblogs.com/jingmoxukong/p/4302718.html要点冒泡排序是一种交换排序。什么是交换排序呢?交换排序:两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。算…

java面向对象使用字符串_java面向对象中的String类中12种常用的方法

1、字符串与字符数组的转换字符串可以使用toCharArray()方法变成一个字符数组,也可以使用String类的构造方法把一个字符数组变成一个字符串。public class StringAPIDemo01{public static void main(String[] args){String str1 "hello"; //定义字符串ch…

python测试4_Python 各种测试框架简介(四):pytest

pytest 有时也被称为 py.test,是因为它使用的执行命令是 $ py.test。本文中我们使用 pytest 指代这个测试框架,py.test 特指运行命令。##较于 nose这里没有使用像前三篇一样(简介-举例-discovery-环境)式的分段展开,是因为 pytest 与 nose 的…

在Eigrp做不等值路由的负载均衡

在Eigrp做不等值路由的负载均衡 EIGRP Load Balancing 每个路由协议都支持等值路径的负载均衡.除此之外,IGRP和EIGRP也支持不等值路径的负载均衡,使用variance命令. Variance命令向路由器通告一个n值,n值使用variance命令指定.n值为1-128之间,默认为1。 网络拓扑 Va…

雪花算法Snowflake

雪花Id生成算法,是鼎鼎有名的分布式Id生成算法。它的优点在于,在分布式系统中快速生成有时间顺序的唯一编号!Snowflake实测每秒可生成900万个唯一Id。Nuget包:NewLife.Core源码地址:https://github.com/NewLifeX/X/blo…

java爬取新浪微博登陆_30行jsoup代码搞定新浪微博登录抓取爬虫

主要是设置cookies 想知道方法的朋友可以留言哦爬虫问题都可以探讨哦import java.io.IOException;import java.util.HashMap;import java.util.Map;import org.jsoup.Connection;import org.jsoup.Connection.Method;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;p…

像小猪佩奇那样生活,需要多少钱?

每个有娃的家庭,几乎都有一个小猪佩奇的超级粉丝《小猪佩奇》(又名《粉红猪小妹》)史上最赚钱的英国学前电视动画片动画之一有网友从经济的角度算了笔账像佩奇一家那样生活需要多少钱呢?▼这是佩奇的家,视野相当不错的…

几何画板自定义工具_几何画板最强版 v5.06 中文版(含教程/实例/控件/打包机/工具集)...

相信还有很多地方的网课没有结束,前两天有小伙伴在后台留言求几何画板,这款软件大都收费,所以小软公然发到这里怕是不太稳妥,如果被删除就是被举报啦,需要的小伙伴速度下载保存~几何画板英文名:Sketchpad&a…

解惑3G业务

内容简介: 本书系统地介绍了第三代移动通信系统的业务,主要从业务概念、业务实现流程、关键技术、关键问题以及解决问题的思路几个角度进行介绍。本书内容包括:通信业务发展整体分析、3G的移动视频业务、基于SIP的移动“邀请”业务、移动位置…

Delphi 26 岁

喜欢就关注我们吧!诞生于1995年的 Delphi 现在已经 26 岁了。1995年2月14日,Borland 公司推出了面向开发者的新工具——Delphi,旨在接替 DOS 时代盛行一时的 Turbo Pascal。说到这两款产品必然离不开它们的灵魂人物——Anders Hejlsberg&…

row number函数_Hive排名函数ROW_NUMBER,RANK 和 DENSE_RANK的区别

需求描述:分析最近三个月每天排名前30的邮箱收件数量。涉及到的表字段:发件时间,收件人。一、ROW_NUMBER表t查询出了3月每天不同类型邮箱收件量的降序排名,表t1通过ROW_NUMBER函数给每行数据添加序列号,select ROW_NUM…

在U盘上安装linux

所谓在U盘上安装Linux,就是在U盘上放置一些文件,可以让电脑从U 盘启动linux(需要电脑支持从U盘启动)。这篇教程简单说一下怎么在U盘上安装DSL。主要是这个发行版小,50M左右,而且包含了该有的很多软件。前提…

java中的console是干什么的_[Java教程]javascript中,你真的会用console吗?

[Java教程]javascript中,你真的会用console吗?0 2015-08-11 17:00:09使用console进行性能测试和计算代码运行时间对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用debugger会显得过于笨重,最…