VBA(Visual Basic for Applications)编程|excel|一系列网址或文件路径快速转换为可点击的超链接

很多时候,我们需要把导入的数据某一列转换成超链接,比如URL形式的列。

那么,大批量的情况下,无疑一个个手动点击是非常愚蠢的办法,这个时候我们就需要VBA编程来编写宏,通过编写宏来简化这些手动操作并不现实的操作。

下面,直接上源码,并说明如何启用宏,VBA编程,并固化宏

一、

一系列网址或文件路径快速转换为可点击的超链接的VBA源码  activateHyperlinks 

Sub activateHyperlinks() 'Updateby ExtendofficeDim Rng As RangeDim WorkRng As RangeDim xTitleId As StringOn Error Resume NextxTitleId = "toolsforExcel"Set WorkRng = Application.SelectionSet WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)If WorkRng Is Nothing Then Exit Sub '如果用户取消选择,则退出子程序For Each Rng In WorkRngApplication.ActiveSheet.Hyperlinks.Add Anchor:=Rng, Address:=Rng.ValueNext RngEnd Sub

二、

如何开始VBA(Visual Basic for Applications)编程

excel的版本众多,但其实版本是无所谓的,应该是94版本之后的都可以支持VBA编程了

那什么是VBA编程呢?

VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,特别适用于Excel、Word、PPT等Office软件中,用户可以通过编写VBA代码来自动化日常任务,提高工作效率,说简单点,也就是word,excel这些软件都支持VBA,这个是一种宏语言,也可以想象成脚本语言

那么,宏的来源是两种,第一种是录制宏,也就是自己的操作录制为宏脚本并保存,第二种就是自行编写宏脚本,本案例就是自行编写宏脚本

通常,excel默认是关闭宏开发功能的,并且默认也是禁止宏运行的,那么,如何开启宏编程也就是VBA编程呢?

以excel2016为例,选择文件,选项

进入选项菜单后,选择自定义功能区,勾选开发工具即可

此时,选项栏将会多出一个开发工具选项,里面有宏录制

这个时候的excel文件需要另存为带excel宏模板形式,后缀为xlsm这样的文件形式

保存后的excel文件图标也会变的和普通的文件不一样,带了一个白色感叹号,如下图一样:

🆗,那么,我们写好的宏在哪里管理呢?

ALT+F11快捷键或者如下图所示打开VBA编辑器界面就可以看到所有现有的编写好的宏了,这些宏不需要CTL+S 保存,都是自动保存的

这里查看也可以,并且这里是运行宏的入口:

那么,其他的excel文件是可以共用编辑好的宏的,但需要注意,使用前,需要把宏运行权限开启:

数字签署的宏这里我是不太明白的,懒人方法就是选择启用所有宏,然后此台电脑上的所有excel都可以调用所写的宏了,必须有一个带感叹号的excel文件哦,也就是xlsm后缀的文件,并且该文件是打开状态,否则是看不到宏的,也就是说带有宏的文件必须是打开状态

记住一点就可以了,宏是本台电脑所有的excel文件共享的,在其他普通的excel文件里,也是可以修改宏,编辑宏的,也就是VBA编程,作用范围是本台电脑

例如,打开一个普通的excel文件,此时选择宏这个选项会看到引用自22.xlsm 文件:

三、

activateHyperlinks宏的语句解析

下面是对这段代码的详细解释:

 

当然,以下是修改后代码的详细解释,包括每个部分的作用和为什么要进行这些修改:

 

Sub activateHyperlinks() 'Updateby Extendoffice
' 声明变量
Dim Rng As Range ' 用于遍历指定范围内的每个单元格
Dim WorkRng As Range ' 用于存储用户选择的范围
Dim xTitleId As String ' 用于存储输入框的标题
' 错误处理:如果发生错误,则继续执行下一行代码
On Error Resume Next
' 初始化标题变量
xTitleId = "toolsforExcel"
' 尝试将当前选中的区域赋值给WorkRng
Set WorkRng = Application.Selection
' 弹出一个输入框,允许用户选择一个范围
' 标题是xTitleId的值,初始显示的是WorkRng的地址(如果已选择范围)
' Type:=8指定输入框返回的是一个Range对象

在VBA(Visual Basic for Applications)中,Application.InputBox方法的Type参数用于指定返回值的类型。Type:=8是其中一个选项,它允许用户选择一个单元格区域,并返回一个Range对象。

除了Type:=8之外,Type参数还可以接受其他几个值或值的组合,以指定不同类型的输入。以下是一些常见的Type值及其含义:

  1. 0:返回文本形式的公式。如果输入的单元格中包含公式,该公式将以文本形式返回,而不是计算结果。例如,如果单元格A1包含公式=2+3,则使用Type:=0时,返回的是字符串"=2+3"
  2. 1:允许输入数字。这将使InputBox对话框接受数字输入,并返回输入的数字值。
  3. 2:允许输入文本。这是默认值,使对话框接受任意文本输入。
  4. 数字组合:可以通过将上述数字相加来指定多种类型的输入。例如,Type:=3(即0+1+2,但通常直接写为3)允许输入文本和数字。需要注意的是,虽然组合值可以包含0(公式),但在实际应用中,通常不会将公式与文本或数字组合输入,因为这会导致类型不匹配的问题。

重要的是要注意,Type参数的值决定了InputBox方法返回值的类型。如果指定了错误的类型,或者用户输入的内容与指定的类型不匹配,可能会导致运行时错误或返回意外的结果。

此外,还需要注意的是,Application.InputBox与VBA中的内置InputBox函数有所不同。Application.InputBox提供了更多的功能和选项,包括指定返回类型的Type参数。而内置的InputBox函数则较为简单,主要用于获取用户的文本输入,并返回一个字符串值。

在实际应用中,应根据需要选择合适的Type值来确保InputBox对话框能够正确地接受和处理用户输入。

Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
' 如果用户取消选择(即WorkRng为Nothing),则退出子程序
If WorkRng Is Nothing Then Exit Sub
' 遍历WorkRng范围内的每个单元格
For Each Rng In WorkRng
' 在每个单元格中创建一个超链接
' Anchor:=Rng指定超链接的锚点是当前遍历到的单元格
' Address:=Rng.Value指定超链接的目标地址是单元格的内容
Application.ActiveSheet.Hyperlinks.Add Anchor:=Rng, Address:=Rng.Value
Next Rng
' 子程序结束
End Sub

代码修改说明:

  1. 变量声明:
    • 添加了Dim xTitleId As String来声明xTitleId变量,确保它在使用前已被正确声明。
  2. 错误处理:
    • 保留了On Error Resume Next,这意味着如果遇到运行时错误,VBA将不会显示错误消息框,而是继续执行下一行代码。然而,需要注意的是,这可能会隐藏潜在的问题,因此在实际应用中应谨慎使用。
  3. 用户输入处理:
    • 使用Application.InputBox弹出一个输入框,允许用户选择一个范围。如果用户取消选择(即点击“取消”按钮或关闭输入框),则WorkRng将变为Nothing
    • 添加了If WorkRng Is Nothing Then Exit Sub来检查用户是否取消了选择。如果是,则立即退出子程序,避免后续代码出现错误。
  4. 超链接创建:
    • 在遍历WorkRng范围内的每个单元格时,使用Application.ActiveSheet.Hyperlinks.Add方法创建超链接。
    • 明确了Anchor参数为当前遍历到的单元格(Rng),Address参数为单元格的内容(Rng.Value)。
  5. 代码清晰性:
    • 添加了注释来解释每个代码块的作用,提高代码的可读性和可维护性。

通过这些修改,代码现在更加健壮、清晰,并且能够更好地处理用户输入和潜在的错误情况。

🆗,VBA(Visual Basic for Applications)的初步学习就先到这里了,后面有新的内容在更新

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

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

相关文章

【C++】图像模糊处理题目详解与实现

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述题目内容输入格式输出格式示例输入:输出: 💯题目分析问题拆解 💯我的做法代码实现代码分析 💯老师的做法…

在 Ubuntu 22.04 上部署 AppArmor 应用安全教程

在这篇教程中,我们将为你设置 AppArmor 以增强应用程序的安全性。 AppArmor 是一个 Linux 安全模块,允许你限制各个程序的功能。通过强制执行强制访问控制策略,AppArmor 增强了你的应用程序和系统的安全性。 AppArmor 是一个易于使用的 Lin…

Nginx:动静分离

什么是动静分离? 动静分离 是指将网站中的静态资源(如图片、样式表、脚本等)和动态内容(如 PHP、Python、Node.js 等后端生成的内容)分开部署和处理。这样做的好处是可以利用不同的服务器或缓存策略来优化不同类型的资源。 动静分离的好处 提高性能:静态资源可以直接从…

每天40分玩转Django:Django插件开发

Django插件开发 一、插件开发概述表 阶段主要任务技术要点难度准备工作项目结构设计、环境配置项目布局、setup.py★★★☆☆开发实现功能开发、测试编写Django AppConfig、Signals★★★★☆文档编写API文档、使用说明Markdown、reStructuredText★★★☆☆发布部署PyPI打包…

什么是TDD测试驱动开发(Test Driven Development)?

什么是测试驱动开发? 软件开发团队通常会编写自动化测试套件来防止回归。这些测试通常是在编写应用程序功能代码之后编写的。我们将采用另一种方法:在实现应用程序代码之前编写测试。这称为测试驱动开发 (TDD)。 为什么要应用 TDD?通过在实…

后台管理系统用户退出登录方案实现

退出登录一直是一个通用的前端实现方案,对于退出登录而言,它的触发时机一般有两种: 1. 用户主动退出,即用户点击登录按钮之后退出; 2. 用户被动退出,Token过期或被 其他人"顶下来" 时退出&…

文献分享:BGE-M3——打通三种方式的嵌入模型

文章目录 1. \textbf{1. } 1. 背景与导论 1.1. \textbf{1.1. } 1.1. 研究背景 1.2. \textbf{1.2. } 1.2. 本文的研究 1.3. \textbf{1.3. } 1.3. 有关工作 2. M3-Embedding \textbf{2. M3-Embedding} 2. M3-Embedding 2.1. \textbf{2.1. } 2.1. 模型核心: 混合检索方式 2.1.1. \…

Hadoop•FinalShell连接VMware免密登录

听说这是目录哦 FinalShell连接VMware🌤️解决重连失效FinalShell的使用 免密登录⛈️能量站😚 FinalShell连接VMware🌤️ 保持虚拟机的开机状态,打开FinalShell,如果虚拟机关机或者挂起,连接就会断开。 …

一个在ios当中采用ObjectC和opencv来显示图片的实例

前言 在ios中采用ObjectC编程利用opencv来显示一张图片,并简单绘图。听上去似乎不难,但是实际操作下来,却不是非常的容易的。本文较为详细的描述了这个过程,供后续参考。 一、创建ios工程 1.1、选择ios工程类型 1.2、选择接口模…

《Rust权威指南》学习笔记(五)

高级特性 1.在Rust中,unsafe是一种允许绕过Rust的安全性保证的机制,用于执行一些Rust默认情况下不允许的操作。unsafe存在的原因是:unsafe 允许执行某些可能被 Rust 的安全性检查阻止的操作,从而可以进行性能优化,如手…

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 3:算法实现

目录 1 三种多头编码(MHE)实现1.1 多头乘积(MHP)1.2 多头级联(MHC)1.3 多头采样(MHS)1.4 标签分解策略 论文:Multi-Head Encoding for Extreme Label Classification 作者…

docker中使用Dockerfile设置Volume挂载点

关于在docker中如何使用Volume,可以参考文章: docker中使用Volume完成数据共享-CSDN博客 如果想在生成docker镜像的时候设置好挂载点,而不是在运行镜像生成容器时生成。 下面以自建一个tomcat镜像为例,演示如何在生成镜像时设置…

springboot548二手物品交易boot代码(论文+源码)_kaic

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统二手物品交易信息管理难度大,容错率低&#x…

通往O1开源之路

“Scaling of Search and Learning: A Roadmap to Reproduce o1 from Reinforcement Learning Perspective”由复旦大学和上海人工智能实验室的研究者撰写。该论文从强化学习视角出发,深入分析了实现类似OpenAI o1模型性能的路线图,聚焦于策略初始化、奖…

SD下载、安装、使用、卸载-Stable Diffusion整合包v4.10发布!

目录 前言概述 SD安装1、安装软件2、启动3、配置4、运行5、测试 导入SD模型【决定画风】常用模型下载安装模型 SD卸载SD文生图提示词提示词使用技巧提示词的高级使用技巧强调关键词 前言 我向来不喜欢搞一些没有用的概念,所以直接整理可能用到的东西。 sd简单的说…

Mac iTerm2集成DeepSeek AI

1. 去deepseek官网申请api key,DeepSeek 2. 安装iTerm2 AI Plugin插件,https://iterm2.com/ai-plugin.html,插件解压后直接放到和iTerms相同的位置,默认就在/Applications 下 3. 配置iTerm2 4. 重启iTerm2,使用快捷键呼出AI对话…

MySQL数据库笔记——多版本并发控制MVCC

大家好,这里是Good Note,关注 公主号:Goodnote,本文详细介绍MySQL的并发控制:多版本并发控制MVCC。 文章目录 背景介绍数据库并发控制——锁机制悲观锁和乐观锁悲观锁乐观锁 数据库并发控制——MVCC 的引入MVCC 和锁机…

电脑里msvcr120.dll文件丢失怎样修复?

电脑里msvcr120.dll文件丢失的修复指南 在电脑的日常使用中,我们可能会遇到各种各样的系统文件丢失问题,其中msvcr120.dll文件的丢失就是较为常见的一种。作为一名在软件开发领域深耕多年的从业者,我将为大家详细解析msvcr120.dll文件的重要…

今日头条ip属地根据什么显示?不准确怎么办

在今日头条这样的社交媒体平台上,用户的IP属地信息对于维护网络环境的健康与秩序至关重要。然而,不少用户发现自己的IP属地显示与实际位置不符,这引发了广泛的关注和讨论。本文将深入探讨今日头条IP属地的显示依据,并提供解决IP属…

【Rust自学】10.3. trait Pt.1:trait的定义、约束与实现

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 题外话:trait的概念非常非常非常重要!!!整个第10章全都是Rust的重难点!&#x…