超链接屏幕提示

问题描述 投票:0回答:2

我正在使用下面的代码从给定文件夹创建文件名列表。

Public Sub ListFilesInFolder(SourceFolder As Scripting.folder, IncludeSubfolders As Boolean)

    Dim fName As String
    Dim Lastrow As Long

    On Error Resume Next

    For Each FileItem In SourceFolder.Files
' display file properties
        Cells(iRow, 3).Formula = FileItem.Name
        Cells(iRow, 4).Formula = FileItem.Path
        iRow = iRow + 1 ' next row number

    Next FileItem

    Range("C17").CurrentRegion.Select
    Selection.Sort Key1:=Range("C17"), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal

    With ActiveSheet
        Lastrow = .Cells(.Rows.Count, "B").End(xlUp).Row
        Lastrow = .Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    End With

        If IncludeSubfolders Then
            For Each SubFolder In SourceFolder.SubFolders
                ListFilesInFolder SubFolder, True
                Next SubFolder
            End If
            Set FileItem = Nothing
            Set SourceFolder = Nothing
            Set FSO = Nothing

    For iRow = 17 To Lastrow
        Cells(iRow, 2).Formula = iRow - 16
        ActiveSheet.Hyperlinks.Add Anchor:=Cells(iRow, 2), Address:="", _
                                   TextToDisplay:=CStr(iRow - 16)
    Next

End Sub
  • B列包含格式为超链接的唯一增量ID。
  • C列包含文件名,和
  • D列包含文件路径

当我将鼠标悬停在超链接上时,出现的“屏幕提示”是文件路径,但我想对此进行更改,以使“屏幕提示”是递增的唯一ID。

我已经阅读了很多有关此的文章,并试图更改“要显示的文字”和“屏幕提示”文字,但我一直没有成功。

我只是想知道是否有人可以看一下这个,并提供一些有关如何更改它的指导。

excel-vba excel-2013 vba excel
2个回答
1
投票

如果您的目标是将鼠标悬停在文本上方,那么快速浏览似乎好像需要使用ScreenTip而不是TextToDisplay

对于以下部分:

ActiveSheet.Hyperlinks.Add Anchor:=Cells(iRow, 2), Address:="", _
                           TextToDisplay:=CStr(iRow - 16)

尝试将其更改为:

Activesheet.Hyperlinks.Add Anchor:=Cells(iRow, 2), Address:="", _
                           ScreenTip:=CStr(iRow - 16)

对于测试,制作一个空白电子表格,并在A1中键入testvalue。下面将根据需要添加悬停文本:

ActiveSheet.Hyperlinks.Add Anchor:=Cells(1, 1), Address:="", ScreenTip:=CStr(Cells(1, 1).Value)

以下内容将更改单元格中的文本,并且不会影响悬停文本:

ActiveSheet.Hyperlinks.Add Anchor:=Cells(1, 1), Address:="", TextToDisplay:=Cstr("texthaschanged")

-1
投票

您可以在ScreenTip之后的代码字符串末尾添加TextToDisplay,如下例:

ActiveSheet.Hyperlinks.Add Anchor:=Cells(1, 1), Address:="", TextToDisplay:=Cstr("texthaschanged"), ScreenTip:="Table Of Contents"
© www.soinside.com 2019 - 2024. All rights reserved.