使用Excel VBA创build数千个超链接的有效方法
我有一个VBA问题来创build一系列单元格的超链接。
在我的应用程序中,我有一个数据表,其中一列列出了我想要添加超链接的ID,以便为该ID打开相应的报告/页面。
在以下所有情况下,假定所有单元格都填充了数字ID。
我目前使用的代码与以下代码非常相似(本例简化):
Dim r As Range, c As Range Set r = Range("C1:C60000") For Each c In r ActiveSheet.Hyperlinks.add anchor:=c, address:="http://www.url.com?address=" & c.value Next c
但是,随着范围变大 – 代码执行的时间变得非常长。 在URL总是相同的情况下,下面的代码运行的很快。
Dim r as Range set r = Range("A1:A60000") r.Hyperlinks.add anchor:=r, address:="http://www.url.com"
我的问题是什么时候这些URL是不同的,特别是如果他们把来自单元格的数据合并在一起,那么这种方式比我现在做的更有效率。
任何帮助或见解,将不胜感激。 谢谢,
示例数据(以CSV格式和Excel表格截图),我需要能够以“ http://www.urltest.com/sample?id=[ID] ”格式添加超链接到整个第一列。 “其中[ID]是来自单元格的值。
- 号,受让人,标题
- 383087,我,解决这个问题
- 403749,你,编译器的问题
- 403856,你,与显示器的问题
- 440912,我,先修三件事
- 458523,另一个人,“你,我,这个问题”
- 476182,你,天空中的明星
- 485834,你,三只小熊
- 499569,你,我的键盘不工作
- 500552,我,我的鼠标不起作用
- 516824,我,我无法login
- 523654,另一个人,计算机电缆太多
- 536632,其他人,我有一个PHP的问题
- 556012,我,我有一个与VBA的问题
- 561275,你,我用C ++有两个问题
- 569014,我,我的Perl脚本不起作用
- 572658,你,JavaScript让我头疼
- 667911,我,我的耳机断开
- 704432,我,我需要软件升级
- 721637,我,我的笔记本太慢了
- 735784,我,你的服务器拒绝我的连接
- 765477,我,我不知道要连接什么端口
- 778808,我,我的XML有问题
- 788865,我,我的电脑的力量不断波动
- 791957,我,我的电源栏需要更换
- 793507,我,这是我们发布产品之前必须的
- 我有两个产品在一起工作不好
- 798445,我,这些事情需要时间
我能想到的最快的方法是使用HYPERLINK
函数,并将值分配给所有单元格。这也将确保您不必循环。
超链接的语法是
HYPERLINK(link_location,[friendly_name])
阅读关于它在Excel帮助或谷歌它。
ADDRESS(ROW(),COLUMN()))
给你当前单元格的地址。
尝试这个
Sub test_simple_diffurl() Dim r As Range Set r = Range("C1:C60000") r.Formula = "=HYPERLINK(""http://www.url.com?address="" & ADDRESS(ROW(),COLUMN()),""Test with "" & ADDRESS(ROW(),COLUMN()))" End Sub