使用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