Bri*_*ian 3 excel vba excel-vba
我有一个VBA问题,为一系列单元格创建超链接.
在我的应用程序中,我有一个数据表,其中一列列出了我想要添加超链接的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
Run Code Online (Sandbox Code Playgroud)
但是,随着范围变大 - 此代码执行的时间变得非常长.在URL始终相同的情况下,以下代码运行得非常快.
Dim r as Range
set r = Range("A1:A60000")
r.Hyperlinks.add anchor:=r, address:="http://www.url.com"
Run Code Online (Sandbox Code Playgroud)
我的问题是当URL不同时,特别是如果它们合并来自单元格的数据,那么有一种方法比我目前正在做的更有效.
任何帮助或见解将不胜感激.谢谢,
示例数据(以CSV格式和Excel表格截图),我需要能够以" http://www.urltest.com/sample?id=[ID"的格式向整个第一列添加超链接"其中[ID]是来自单元格的值.

我能想到的最快的方法是使用HYPERLINK函数并一次性将值分配给所有单元格:)这也将确保您不必循环.
Hyperlink的语法是
HYPERLINK(link_location,[friendly_name])
在Excel帮助或Google中了解它.
该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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1501 次 |
| 最近记录: |