excel - VBA循环更新列中每个单元格的超链接

标签 excel vba

我编辑了这个问题,因为我犯了一个小错误,并决定不将我正在使用的单元格引用简化为简单的引用。

我选择通过运行宏来更新特定单元格中的超链接。

Range("AB118").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
Range("Z118") & Range("AD105")

所以基本上:

AB 列包含最终的超链接,例如。主页!AB118

Z 列包含工作表的名称,例如。家!

单元格 AD105 包含您将登陆的单元格,例如。 AB118

我已经编写了宏来一次更新一个单元格/行的超链接。
 'Update "Sheet 1" Link
    Range("AB118").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
    Range("Z118") & Range("AD105")

'Update "Sheet 2" Link
    Range("AB119").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
    Range("Z119") & Range("AD105")

'Update "Sheet 3" Link
    Range("AB120").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
    Range("Z120") & Range("AD105")

有没有办法使用“For Each”或类似的方法来缩短这个宏,它通过每一行将 Z 列和单元格 AD105 组合成一个出现在 AB 列中的超链接。

希望这是有道理的,我对 excel 和 VBA 非常有经验,但对论坛来说是新手。

此信息表从第 118 行开始,到第 171 行结束,所以我不确定是否需要告诉它从特定行开始并在特定行结束。

最佳答案

您可以使用以下 Sub 循环浏览列“B”和“C”,直到其中一个为空。这将使用“B”和“C”中的值填充“A”列,直到没有更多的连续值。

Private Sub NewLink()
    Dim i As Integer
    i = 1
    Do Until IsEmpty(Range("B" & i).Value) Or IsEmpty(Range("C" & i).Value)
        Range("A" & i).Select
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        Range("B" & i) & Range("C" & i)
        i = i + 1
    Loop
End Sub

只需使用以下命令在您需要/希望它运行的任何地方调用此函数。
Call NewLink

按照 Dude_Scott 对 .Select 的建议,使用以下内容。
Private Sub NewLink()
    Dim i As Integer
    i = 1
    Do Until IsEmpty(Range("B" & i).Value) Or IsEmpty(Range("C" & i).Value)
        ActiveSheet.Hyperlinks.Add Anchor:=Range("A" & i), Addreess:="", SubAddress:= _
        Range("B" & i) & Range("C" & i)
        i = i + 1
    Loop
End Sub

编辑:帮助读者选择适合他们需求的解决方案。

“Do While”循环的优点是您可以添加额外的连续行,而无需更新您的宏/子。

缺点是“B”和“C”列本质上是为在“A”列中创建链接而保留的。

关于excel - VBA循环更新列中每个单元格的超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55248635/

相关文章:

excel - 内置 Excel 函数在 VBA 代码中不起作用 - 我的错误是什么?

vba - 使用 VBA 进行 SFTP 上传

ms-access - 将逗号分隔的字段解析为单独的字段 (MS ACCESS VBA 2003)

c# - 电子表格齿轮和日期时间格式

java - 从excel导入数据并在xpath的一部分中使用

VBA:仅考虑 A 中最后一个单元格的值并将选择范围扩展到 W

vba - 另存为 .csv 正确的小数分隔符

Python - 使用正则表达式从 Pandas DataFrame 中的列(包含字符串)中提取权重并将其添加到新列中

excel - 如何在 sub 内部使用 Count If 函数?

.net - 在 excel/vba 中使用 zeromq