实用VBA:19.Excel一键修复文件链接

news2024/9/21 20:45:20

1.需求场景

此前与大家分享过一键提取文件目录和文件名的方法,并且VBA中加一句语句就可以使提取出来的文件名带有链接,这样很方便在对大量文件进行检查时不必在资源管理器里到处翻目录,所见即所得,点击文件名即可打开文件。是个实际工作中非常实用的小技巧。但是有时候由于将保存目录信息的excel文件移动到了其他目录下或者分享至其他计算机等原因,常常遇到文件链接失效的情况。此时,也可以通过简单的VBA实现一键修复链接。

2.解决思路

一键提取文件路径和文件名的方法在此前的文章中与大家分享过(实用VBA:6.一键批量提取文件名和存储路径_批量存储文件名-CSDN博客)。在此代码的基础上,将其中注释掉的那一句的注释取消即可实现文件名带链接就是这句:

'ws.Hyperlinks.Add anchor:=ws.Cells(last_row, 2), Address:=fso.Path & "\" & file.Name

在这个范例的基础上,如果文件名链接失效了,我们就可以将A列的文件路径和B列的文件名重新组合为文件完整路径,将其添加为B列单元格内容(文件名)的链接。

当然也可以使用一键提取的方法重新提取带链接的文件名和路径,但是如果之前已经提取过的路径没有变化,仅是链接失效了,就可以采用这里介绍的方法修复链接。文件很多的时候用这个修复的方法速度更快。况且原来提取的很多文件和路径可能是从多个根目录下多次提取出来的,修复的话就更加节省了多次提取的时间。

例如,修复前的表格如下(不含链接)

3.VBA实现

Option Explicit



Dim wb As Workbook

Dim ws As Worksheet



'在已提取文件路径和文件名的基础上修复文件名与文件的链接

Sub B修复链接()

'定义循环变量

Dim i As Integer

    '设置工作簿为当前工作簿

    Set wb = Workbooks(1)

    '设置文件路径信息保存在“文件列表”表格中

    Set ws = Worksheets("文件列表")

    

    '取消当前工作表中所有单元格的链接

    'ws.Hyperlinks.Delete

    

    '处理第2-13行的信息

    For i = 2 To 13

        '将每行A列与B列拼接出的文件完成路径作为链接信息赋予B列文件名所在单元格

        ws.Hyperlinks.Add anchor:=ws.Cells(i, 2), Address:=ws.Cells(i, 1).Value & ws.Cells(i, 2).Value

    Next i

    

    '释放工作表变量

    Set ws = Nothing

    '释放工作簿变量

    Set wb = Nothing

    

    '输出提示信息

    MsgBox "链接更新完毕。"

   

End Sub

4.运行效果

运行结束后,B列单元格链接修复完成,点击文件名即可直接打开文件。

删除链接的那一句我注释掉了,大家可以取消注释自己练习。

喜欢的话欢迎关注、点赞、转发或评论交流!

点赞富三代,分享美一生! ^|^

为便于朋友们练习,如需要源代码和个篇文章中的范例练习文件,可以加关注后发表评论、回复。我会通过私信将打包的范例文件分享给大家,本系列文章更新到哪里,分享的范例文件同步更新【!仅限加关注的朋友专享哦!】。

5.往期列表

实用VBA:1.向下填充空白单元格

实用VBA:2.隔行插入空白行

实用VBA:3.向下合并空白单元格

实用VBA:4.按列拆分工作表

实用VBA:5.批量汇总工作簿、合并工作表

实用VBA:6.一键批量提取文件名和存储路径

实用VBA:7.按文件列表一键汇总excel工作簿

实用VBA:8.一键输出多表格为单独文件

实用VBA:9.使用Excel批量套模板,一键输出多个工作表

实用VBA:10.用VBA向Excel文件中自动插入图片

实用VBA:11.用Excel自动生成商品调拨单

实用VBA:12.用VBA将txt文本文件导入Excel表格

实用VBA:13.Excel数据批量套模板输出pdf文件

实用VBA:14.在二维数组中查找特定元素

实用VBA:15 一键批量汇总工作表的更优方法

实用VBA:16.一键批量删除工作表

实用VBA:17.大量word文件中的文本内容进行批量替换 

实用VBA:18.角度或坐标的格式转换(单位换算)-CSDN博客

(佛系更新中……)

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

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

相关文章

Python爬虫与数据可视化论文课题免费领取咨询

引言 作为一名在软件技术领域深耕多年的专业人士,我不仅在软件开发和项目部署方面积累了丰富的实践经验,更以卓越的技术实力获得了🏅30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定,也是对我的创新精神和专业承诺…

快速实现一个Hibernate的例子

写第一个简单的Hibernate程序: 具体的开始第一个Hibernate程序之前: 找到jar包, hibernate 的核心包, mysql数据库的连接驱动包, junit测试包 ①创建Hibernate配置文件 ②创建持久化类 也是和数据库中数据表一一对应这个类 ③创建对象-关系映射文件 ④通过hibern…

面向对象——继承、多态、方法重写、构造方法重载简单例子

说明: 这学期开了面向对象的课程,老师上星期布置了作业,之前用JAVA写了一遍,今天心血来潮又用C写了一遍。博主只会敲代码,但面向对象是小白一个,欢迎交流学习。 题目: C代码: #inc…

【Qt 学习笔记】Qt常用控件 | 按钮类控件Radio Button的使用及说明

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 按钮类控件Radio Button的使用及说明 文章编号&#xff…

[docker] 核心知识 - 容器/镜像的管理和操作

[docker] 核心知识 - 容器/镜像的管理和操作 想要查看完整的指令,可以通过 docker --help 列举所有的指令,这里会提到一些比较常用的核心指令 查看容器的状态 这个应该是最常用的指令,语法为 docker ps, ps 为 process status …

华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)

欧拉镜像下载安装 iso镜像官网下载地址 选择最小化安装,标准模式 换华为镜像源 更换华为镜像站,加速下载: sed -i "s#http://repo.openeuler.org#https://mirrors.huaweicloud.com/openeuler#g" /etc/yum.repos.d/openEuler.r…

Lobe UI - 基于 AntDesign 开发的 AIGC Web 应用的开源 UI 组件库

今天推荐一个可以快速开发 ChatGPT UI 界面的组件库,质量很高,拿来就能用。 Lobe UI 是由 lobehub 团队开发的一套 web UI 组件库,和我之前推荐的很多通用型的 UI 组件库不同,Lobe UI 是专门为目前火热的 AIGC 应用开发而打造&am…

2.整数表示

系列文章目录 信息的表示和处理 : Information Storage(信息存储)Integer Representation(整数表示)Integer Arithmetic(整数运算)Floating Point(浮点数) 文章目录 系列文章目录前…

软件设计不是CRUD(18):像搭积木一样搭建应用系统(上)——单个应用系统的搭建过程

1、概述 之前的文章本专题花了大量文字篇幅,介绍如何基于业务抽象的设计方式完成应用系统各个功能模块的设计工作。而之所以进行这样的功能模块设计无非是希望这些功能模块在具体的项目实施过程中,能够按照当时的需求快速的、简易的、稳定的、最大可能节约开发成本的形成可用…

腾讯EdgeOne产品测评体验——开启安全防护,保障数据无忧

当今时代数字化经济蓬勃发展人们的生活逐渐便利,类似线上购物、线上娱乐、线上会议等数字化的服务如雨后春笋般在全国遍地生长,在人们享受这些服务的同时也面临着各式各样的挑战,如网络数据会不稳定、个人隐私容易暴露、资产信息会被攻击等。…

RabbitMQ消息模型之Direct消息模型

Direct消息模型 * 路由模型: * 一个交换机可以绑定多个队列 * 生产者给交换机发送消息时,需要指定消息的路由键 * 消费者绑定队列到交换机时,需要指定所需要消费的信息的路由键 * 交换机会根据消息的路由键将消息转发到对应的队…

C++vector类(个人笔记)

vector类 1.熟悉vector接口以及使用1.1vector的定义1.2vector迭代器使用1.3vector空间增长1.4vector增删查改1.5vector迭代器失效问题(重点) 2.vector的一些笔试题3.模拟实现vector 1.熟悉vector接口以及使用 vector的C官网文档 1.1vector的定义 (con…

基于Python的卷积网络的车牌识别系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

深入剖析Tomcat(二) 实现一个简单的Servlet容器

现在开始《深入剖析Tomcat》第二章的内容,第一章中,我们编码实现了一个能正常接收HTTP请求并返回静态资源的Web容器,这一章开始引入Servlet的概念,使我们的服务能根据请求动态返回内容。 Servlet是什么? 这是首先要弄…

FFmpeg: 自实现ijkplayer播放器--04消息队列设计

文章目录 播放器状态转换图播放器状态对应的消息: 消息对象消息队列消息队列api插入消息获取消息初始化消息插入消息加锁初始化消息设置消息参数消息队列初始化清空消息销毁消息启动消息队列终止消息队列删除消息 消息队列,用于发送,设置播放…

docker-compose yaml指定具体容器网桥ip网段subnet;docker创建即指定subnet;docker取消自启动

1、docker-compose yaml指定具体容器网桥ip网段subnet docker-compose 启动yaml有时可能的容器网段与宿主机的ip冲突导致宿主机上不了网,这时候可以更改yaml指定subnet 宿主机内网一般是192**,这时候容器可以指定172* version: 3.9 services:coredns:…

内网渗透-域环境的搭建

域环境的搭建 文章目录 域环境的搭建前言一、什么是域环境 什么是域内网基础知识点 二、域环境的搭建 1. 部署域结构2.如何加入域3.SRV出错及解决办法4.SRV记录注册不成功的可能原因 禁用域中的账户将计算机退出域添加域用户总结 前言 一、什么是域环境 什么是域 域是一种管…

盘点2024年最新可用免费云服务器

随着云计算技术的快速发展,越来越多的企业和个人开始使用云服务器来满足各种业务需求。云服务器作为云计算的核心服务之一,以其弹性扩展、按需付费等特点受到广泛关注。本文将为大家盘点2024年最新可用免费云服务器,助力大家轻松上云&#xf…

浏览器工作原理与实践--CSRF攻击:陌生链接不要随便点

在上一篇文章中我们讲到了XSS攻击,XSS 的攻击方式是黑客往用户的页面中注入恶意脚本,然后再通过恶意脚本将用户页面的数据上传到黑客的服务器上,最后黑客再利用这些数据进行一些恶意操作。XSS攻击能够带来很大的破坏性,不过另外一…

量子飞跃:从根本上改变复杂问题的解决方式

内容来源:量子前哨(ID:Qforepost) 编辑丨王珩 编译/排版丨沛贤 深度好文:1000字丨5分钟阅读 利用多功能量子比特的量子计算机已处于解决复杂优化问题的最前沿,例如旅行商问题,这是一个典型的…