Excel 如何在列中填充具有自身超链接的单元格

Excel 如何在列中填充具有自身超链接的单元格,excel,vba,hyperlink,Excel,Vba,Hyperlink,我想用超链接填充AF列,直到包含A列数据的最后一行 然后,我将使用此链接运行所需的宏,并使用Target.Cell.Row从宏中的此行获取信息 我曾尝试使用此答案中的代码,但每次尝试使用此函数运行宏或从中调用另一个宏时,我都会收到错误。我后来发现函数不能调用其他宏,只能返回值 还有其他想法吗?我已经找了一个多小时了,尝试了不同的组合,包括右键单击单元格、创建超链接和使用 Private子工作表\u FollowHyperlink(ByVal Target As Hyperlink)启动宏,并Ta

我想用超链接填充AF列,直到包含A列数据的最后一行

然后,我将使用此链接运行所需的宏,并使用Target.Cell.Row从宏中的此行获取信息

我曾尝试使用此答案中的代码,但每次尝试使用此函数运行宏或从中调用另一个宏时,我都会收到错误。我后来发现函数不能调用其他宏,只能返回值

还有其他想法吗?我已经找了一个多小时了,尝试了不同的组合,包括右键单击单元格、创建超链接和使用

Private子工作表\u FollowHyperlink(ByVal Target As Hyperlink)
启动宏,并
Target.Range.Row
获取单击单元格的行号。唯一的问题是,我需要自动填充超链接(价值超过60000行)并将其链接到自己的超链接,手动执行此操作将非常困难,并且无法找到自动执行此操作的方法,除非它正在粘贴公式超链接,但由于某些原因,此操作无法用于运行宏。

尝试一下:

Sub Macro1()

    Dim AFrange As Range, r As Range, s As String

    Set AFrange = Range("AF1:AF" & Cells(Rows.Count, "A").End(xlUp).Row)

    For Each r In AFrange
        ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
        ActiveSheet.Name & "!" & r.Address(0, 0), TextToDisplay:="myself"
    Next r
End Sub
编辑#1:

根据p的评论ᴇʜ,请改用此选项:

Sub Macro1()

    Dim AFrange As Range, r As Range, s As String

    Set AFrange = Range("AF1:AF" & Cells(Rows.Count, "A").End(xlUp).Row)

    For Each r In AFrange
        ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
        "'" & ActiveSheet.Name & "'!" & r.Address(0, 0), TextToDisplay:="myself"
    Next r
End Sub
尝试一下:

Sub Macro1()

    Dim AFrange As Range, r As Range, s As String

    Set AFrange = Range("AF1:AF" & Cells(Rows.Count, "A").End(xlUp).Row)

    For Each r In AFrange
        ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
        ActiveSheet.Name & "!" & r.Address(0, 0), TextToDisplay:="myself"
    Next r
End Sub
编辑#1:

根据p的评论ᴇʜ,请改用此选项:

Sub Macro1()

    Dim AFrange As Range, r As Range, s As String

    Set AFrange = Range("AF1:AF" & Cells(Rows.Count, "A").End(xlUp).Row)

    For Each r In AFrange
        ActiveSheet.Hyperlinks.Add Anchor:=r, Address:="", SubAddress:= _
        "'" & ActiveSheet.Name & "'!" & r.Address(0, 0), TextToDisplay:="myself"
    Next r
End Sub

事件中的
target
类型为
Hyperlink
,没有
范围
属性。它有一个
地址
和一个
子地址
-属性-如果超链接指向同一工作簿中的某个位置,您可以在
目标中找到该地址。子地址
-但是,这是一个字符串,而不是
范围

当您将目标地址设置为单元格本身时,可以使用
ActiveCell.Row
获取行-注意,当地址指向其他位置时,Excel将首先跳转到该位置,然后执行代码

要设置超链接,请使用Gary的学生代码(我正要发布相同的代码)

您的句子“我后来发现函数不能调用其他宏,只能返回值”对我来说毫无意义-您有一个事件例程,它是
(不是
函数
)。此外,您还可以从函数或子函数调用任何其他例程


总的问题是,如果在右键单击之前使用不同的工作表事件(如
Worksheet\u)或双击之前使用
Worksheet\u
)不是更好的做法,那么您就有了一个
范围
作为目标,并且不需要在您的事件类型中使用60K超链接来破坏工作表
超链接
并且没有
范围
属性。它有一个
地址
和一个
子地址
-属性-如果超链接指向同一工作簿中的某个位置,您可以在
目标中找到该地址。子地址
-但是,这是一个字符串,而不是
范围

当您将目标地址设置为单元格本身时,可以使用
ActiveCell.Row
获取行-注意,当地址指向其他位置时,Excel将首先跳转到该位置,然后执行代码

要设置超链接,请使用Gary的学生代码(我正要发布相同的代码)

您的句子“我后来发现函数不能调用其他宏,只能返回值”对我来说毫无意义-您有一个事件例程,它是
(不是
函数
)。此外,您还可以从函数或子函数调用任何其他例程


总的问题是,如果在右键单击之前使用不同的工作表事件(如
工作表_
或双击之前使用
工作表_
)不是更好,那么您的目标是
范围
,无需在工作表中添加60K超链接

您是否尝试过录制将一个单元格转换为一个单元格的宏超链接到自身,然后尝试从那里修改代码?尽管我想知道是否有更好的事件来启动宏。能否显示您尝试调用的代码?您是否尝试录制一个宏,将一个单元格转换为自身的超链接,然后尝试从那里修改代码?尽管我想知道是否有启动宏的更好的事件。您能显示您试图调用的代码吗?它应该将工作表名称用撇号括起来
子地址:=“'”&ActiveSheet.name&“!”&r.Address(0,0)
以防工作表名称包含空格。它应该将工作表名称用撇号括起来
子地址:=“'”&ActiveSheet.name&“!”&r.Address(0,0)
以防图纸名称包含空格。