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

news2024/11/25 12:44:55

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

示例代码如下:

Sub AutoAddLink()
    Dim strFldPath As String
    With Application.FileDialog(msoFileDialogFolderPicker)
    '用户选择指定文件夹
        .Title = "请选择指定文件夹。"
        If .Show Then strFldPath = .SelectedItems(1) Else Exit Sub
        '未选择文件夹则退出程序,否则将地址赋予变量strFldPath
    End With
    Application.ScreenUpdating = False
    '关闭屏幕刷新
    Range("a:b").ClearContents
    Range("a1:b1") = Array("文件夹", "文件名")
    Call SearchFileToHyperlinks(strFldPath)
    '调取自定义函数SearchFileToHyperlinks
    Range("a:b").EntireColumn.AutoFit
    '自动列宽
    Application.ScreenUpdating = True
    '重开屏幕刷新
End Sub
Function SearchFileToHyperlinks(ByVal strFldPath As String) As String
    Dim objFld As Object
    Dim objFile As Object
    Dim objSubFld As Object
    Dim strFilePath As String
    Dim lngLastRow As Long
    Dim intNum As Integer
    Set objFld = CreateObject("Scripting.FileSystemObject").GetFolder(strFldPath)
    '创建FileSystemObject对象引用
    For Each objFile In objFld.Files
    '遍历文件夹内的文件
        lngLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
        strFilePath = objFile.Path
        intNum = 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 objFile
    For Each objSubFld In objFld.SubFolders
    '遍历文件夹内的子文件夹
        Call SearchFileToHyperlinks(objSubFld.Path)
    Next objSubFld
    Set objFld = Nothing
    Set objFile = Nothing
    Set objSubFld = Nothing
End Function

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

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

相关文章

生产实习Day9 ---- Scala介绍

文章目录 Scala:融合面向对象与函数式编程的强大语言引言Scala与Java的互操作性Scala在大数据处理中的应用Scala的并发编程Scala的学习资源和社区结论 Scala:融合面向对象与函数式编程的强大语言 引言 Scala,全称Scalable Language&#xff…

Postman 批量执行 Api 请求

Postman 批量执行 Api 请求 Postman不仅可以帮助我们发送和调试单个API请求,还可以批量执行一系列请求,自动化测试和监测API的性能。 本文将介绍如何在 Postman 中批量执行 API 请求,并展示其实际应用案例。 API集成测试:验证不同…

Ubuntu 18.04 安装 PCL 1.14.1

在进行科研项目时,我们常常需要将 C 和 Python 结合起来编程。然而,每次将 PCL(Point Cloud Library)的内容添加到 CMakeLists.txt 文件中时都会报错。在深入分析后,我们推测可能是当前使用的 PCL 1.8 版本与现有程序不…

大学物理-----电磁学安培环路定理

目录 1.声明 2.安培环路定理 3.安培环路定理的证明 4.安培环路定理的应用 (1)分析 (2)解释 (3)有旋场 (4)无限长导线 (5)载流圆柱面 (6&…

Unity免费领6月开发者周100种预制幻想万圣节场景模型包幻想RPG南瓜头墓地场景素材Q萌TIDALFLASK20240621

结账时输入优惠码 TIDALFLASK 即可免费获取。无需购买。 Unity免费领6月开发者周100种预制幻想万圣节场景模型包幻想RPG南瓜头墓地场景素材Q萌TIDALFLASK202406211051 本周的开发商主要是一些Lowpoly幻想风格的场景模型素材 各种主题类型,非常多内容 适合RPG类型 …

python-赏月

[题目描述] 在某个星球上看到的月亮大小有一个规律,月亮为每30天一个周期,在这30天的周期里,月亮的大小分别为 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1。 虽然天气很冷,但这个星球上的某个居民今…

【机器学习 复习】第3章 K-近邻算法

一、概念 1.K-近邻算法:也叫KNN 分类 算法,其中的N是 邻近邻居NearestNeighbor的首字母。 (1)其中K是特征值,就是选择离某个预测的值(例如预测的是苹果,就找个苹果)最近的几个值&am…

谁拥有数字营销平台即拥有企业竞争力!

掌握数字营销平台,就等于掌握企业竞争力! 宝子们,咱今天来聊聊这个事儿哈。在现在这个数字化的时代,拥有像蚓链这样的数字营销平台那可太重要啦! 想想看,有了它,企业就能更广、更快地去推广…

【Win】小键盘不听话?一文教你在Windows中恢复数字输入

想象一下,你正坐在办公室里,手指在键盘上飞舞,突然间,你的小键盘变得不听话了——数字不再出现,而NumLock键似乎失去了它的魔力。这可能是由于Windows中的一个鲜为人知的功能——“鼠标键”被意外激活了。本文将带你一…

九、C#判断

判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C# 提供了以…

“Docker之道:优雅管理容器数据的艺术“

目录 1. 容器数据卷 1.1 容器卷的概念 1.2 容器卷的使用 1.3 个人案例实现容器卷挂载 1.4 MySQL同步数据案例(容器数据卷操作) 1.4.1 获取 MySQL 镜像 1.4.2 运行 MySQL 容器并配置数据持久化 参数说明: 1.4.3 测试 MySQL 连接 1.4…

手机怎么恢复回收站清空的照片?这里有找回相册的3个重要指南

生活里,从家庭聚会的美好瞬间到重要的工作文件,都在我们的手机相册中留下了痕迹。然而意外常常降临,这些数据也有可能突然消失不见,并且恢复回收站清空的照片失败的情况也不少见。请别着急,在这篇文章中,我…

视频智能分析平台LntonAIServer安防监控视频平台行人入侵检测算法核心特点及其应用价值

LntonAIServer行人入侵检测算法是一种基于深度学习和计算机视觉技术的先进解决方案,旨在提高监控系统的智能化水平,有效预防未经授权的人员进入重要场所,保障安全生产和管理。以下是关于该算法的主要特点和应用的详细介绍: 核心特…

性能工具之 JMeter 常用组件介绍(五)

文章目录 一、Jmeter中参数取值1、Test Plan中添加变量2、User Defined Variables 二、Jmeter中CSV Data Set Config三、Timer:定时器4、Gaussian Random Timer 高斯随机定时器5、JSR223 Timer JSR223定时器6、Poisson Random Timer 泊松随机定时器7、Synchronizing Timer 同步…

文件处理的基本操作

一、文件与流 为什么要使用文件:程序的处理结果在程序结束后就消失,要想将程序运行的结果保存下来,就可以将相关内容保存在文件(file)中。 针对文件、键盘、显示器、打印机等外部设备的数据的读写操作都是通过流&…

阿里AI图片编辑新项目,人人都可做设计师。MimicBrush本地一键整合包下载

最近阿里巴巴联合香港大学开源了一个创新图像编辑工具:MimicBrush,这个工具相当于是一个局部重绘工具。它通过先进的AI技术,能够将一张图片的某一部分融合到另一张图片上。 MimicBrush,一款颠覆传统的图像编辑神器,不过…

在idea里使用github copilot ,就是这么好用

Github Copilot 代码补全等功能,提高写代码的效率 获取地址:https://web.52shizhan.cn/activity/copilot 如果之前是激活器激活的,请到环境变量里删除相关的copilot配置。 ① 发你注册的github账号的邮箱或用户名给客服,客服邀…

openppp2 控制台回显窗口输出内容详解

本文介绍 openppp2 的控制窗口回显内容,以LINUX平台为例子,其它平台大同小异,区别只是多了一些额外的输出选项内容,本文会在下面补充。 在本文开始之前请查阅关联内容:openppp2 命令行接口详解-CSDN博客 控制台客户端…

SpringEvent扩展性利器

使用Spring Event机制可以保证高扩展性: 使用Spring Event来发布应用内部领域事件,对于事件监听器可通过注解或类的方式来扩展,Spring Event内部使用观察者模式,但api使用层面可以完全解耦事件发布和事件监听: 常用方式…

建筑驱鸟设备 | 建筑专用超声波驱鸟器

从半夜的鸣叫到频繁的鸟粪污染,鸟类活动有时会成为城市居民不得不面对的小小困扰。通过合理的驱鸟方法,我们可以有效地减少鸟类对建筑物的侵扰,保护建筑物的完好和安全,同时维护城市居民的生活质量。 建筑专用超声波驱鸟器&#x…