从另一个模块调用Worksheet_FollowHyperlink()时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从另一个模块调用Worksheet_FollowHyperlink()时出错相关的知识,希望对你有一定的参考价值。

Worksheet_FollowHyperlink()在模块2和模块3中,我试图从Sheet00中调用它。

Sheet00

Sub data_hyplink()
Dim ws As Worksheet
i = 1

For Each ws In ActiveWorkbook.Worksheets
    If ws.Name <> "main" Then
        Sheets("main").Cells(i, 2).Hyperlinks.Add Anchor:=Sheet00.Cells(i, 2), Address:="", SubAddress:="", TextToDisplay:=""
        Sheets("main").Cells(i, 3).Hyperlinks.Add Anchor:=Sheet00.Cells(i, 3), Address:="", SubAddress:="", TextToDisplay:=""
        i = i + 1
    End If
Next

End Sub

Sub display_sheets(ByVal Target As Range)
    Call Module2.Worksheet_FollowHyperlink
    Call Module3.Worksheet_FollowHyperlink
End Sub

来自Module2和Module3的示例内容(它们唯一的区别是地址)

Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

If Target.Range.Address = "$B$2" Then
    a_asb_mw.Visible = xlSheetVisible
    a_asb_mw.Activate

ElseIf Target.Range.Address = "$B$3" Then
    a_asb_wn.Visible = xlSheetVisible
    a_asb_wn.Activate

...

EndIf

每当单击超链接单元格时,它应该打开隐藏的工作表,但是,我似乎无法使其工作。也许这是我试图传递Sub zz_display(ByVal Target As Range)的参数,这是不正确的。我尝试了ByVal Target As Hyperlink,但它也没有用。

我错过了什么?非常感谢您的帮助。

答案

只需将此宏放在Sheet00中,它就可以完成您想要的任务。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$B$2" Then
        Sheets("a_asb_wm").Visible = True
        Sheets("a_asb_wm").Activate
    End If

    If Target.Address = "$B$3" Then
        Sheets("a_asb_wn").Visible = True
        Sheets("a_asb_wn").Activate
    End If

End Sub

以上是关于从另一个模块调用Worksheet_FollowHyperlink()时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个模块调用导出的内核模块函数?

调用 if __name__ == '__main__':在一个模块中从另一个模块中的函数 [关闭]

从另一个模块调用Worksheet_FollowHyperlink()时出错

从另一个提供循环依赖的模块打开活动

如何从另一个函数进行异步函数调用?

从另一个 Magnolia 模块访问 Spring 服务(不使用 Spring Blossom)