当前位置: 首页 > news >正文

VBA学习(13):获取多层文件夹内文件名并建立超链接

代码使用了FileSystemObject对象和递归的方法实现文件夹和文件的遍历功能。分别将文件夹名称和文件名提取在表格的A/B列,并对文件名创建了超链接。

示例代码如下:

Sub AutoAddLink()Dim strFldPath As StringWith Application.FileDialog(msoFileDialogFolderPicker)'用户选择指定文件夹.Title = "请选择指定文件夹。"If .Show Then strFldPath = .SelectedItems(1) Else Exit Sub'未选择文件夹则退出程序,否则将地址赋予变量strFldPathEnd WithApplication.ScreenUpdating = False'关闭屏幕刷新Range("a:b").ClearContentsRange("a1:b1") = Array("文件夹", "文件名")Call SearchFileToHyperlinks(strFldPath)'调取自定义函数SearchFileToHyperlinksRange("a:b").EntireColumn.AutoFit'自动列宽Application.ScreenUpdating = True'重开屏幕刷新
End Sub
Function SearchFileToHyperlinks(ByVal strFldPath As String) As StringDim objFld As ObjectDim objFile As ObjectDim objSubFld As ObjectDim strFilePath As StringDim lngLastRow As LongDim intNum As IntegerSet objFld = CreateObject("Scripting.FileSystemObject").GetFolder(strFldPath)'创建FileSystemObject对象引用For Each objFile In objFld.Files'遍历文件夹内的文件lngLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1strFilePath = objFile.PathintNum = InStrRev(strFilePath, "\")'使用instrrev函数获取最后文件夹名截至的位置Cells(lngLastRow, 1) = Left(strFilePath, intNum - 1)'文件夹地址Cells(lngLastRow, 2) = Mid(strFilePath, intNum + 1)'文件名ActiveSheet.Hyperlinks.Add Anchor:=Cells(lngLastRow, 2), _Address:=strFilePath, ScreenTip:=strFilePath'添加超链接Next objFileFor Each objSubFld In objFld.SubFolders'遍历文件夹内的子文件夹Call SearchFileToHyperlinks(objSubFld.Path)Next objSubFldSet objFld = NothingSet objFile = NothingSet objSubFld = Nothing
End Function

相关文章:

  • Rabbit MQ和Kafka的区别
  • docker入门配置
  • 绝望的C#:TreeView为什么双击自动展开、折叠?双击事件的参数根本不是双击位置
  • 深入理解Vue3.js响应式系统设计之调度执行
  • FlinkCDC介绍及使用
  • 【论文速读】|对BusyBox进行模糊测试:利用大语言模型和崩溃重用挖掘嵌入式系统中的漏洞
  • Ubuntu 22.04.1 安装ubuntu有道词典时错误发生
  • 2352.相等行列对
  • Jmeter性能 之 “查看结果树” 界面功能介绍
  • 各种开发语言运行时占用内存情况比较
  • 视频智能分析平台LntonAIServer安防监控视频平台行人入侵检测算法核心特点及其应用价值
  • 网络与协议安全复习 - 电子邮件安全
  • Java宝藏实验资源库(4)对象数组
  • redis-基础篇(1)
  • ubuntu server 22.04安装 fdfs
  • @angular/forms 源码解析之双向绑定
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 230. Kth Smallest Element in a BST
  • conda常用的命令
  • CSS盒模型深入
  • exif信息对照
  • hadoop集群管理系统搭建规划说明
  • JavaScript 基础知识 - 入门篇(一)
  • java正则表式的使用
  • Linux后台研发超实用命令总结
  • Python学习之路16-使用API
  • unity如何实现一个固定宽度的orthagraphic相机
  • 从零开始在ubuntu上搭建node开发环境
  • 二维平面内的碰撞检测【一】
  • 高程读书笔记 第六章 面向对象程序设计
  • 聊聊flink的TableFactory
  • 如何合理的规划jvm性能调优
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 小程序开发之路(一)
  • 一、python与pycharm的安装
  • 原生js练习题---第五课
  • 中文输入法与React文本输入框的问题与解决方案
  • ​数据结构之初始二叉树(3)
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #QT(QCharts绘制曲线)
  • (160)时序收敛--->(10)时序收敛十
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (JS基础)String 类型
  • (PySpark)RDD实验实战——取一个数组的中间值
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二)windows配置JDK环境
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (计算机网络)物理层
  • (一)WLAN定义和基本架构转
  • ****三次握手和四次挥手
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .gitignore文件忽略的内容不生效问题解决
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions