在 Excel vba 中超链接的路径名中使用 #



我正在创建一个 vba For 循环以循环浏览范围内的单元格,并根据单元格中的文本创建指向文件夹的超链接。见下文:

Set rng = Worksheets("Sheet1").Range("A1:A100")
For Each cell In rng
address1 = "C:UsersDesktopTestsComm ReviewItem #" & 
cell.Text
If Not IsEmpty(cell) Then
Worksheets("Sheet1").Hyperlinks.Add Anchor:=cell, Address:=address1, TextToDisplay:=cell.Text
End If
Next cell

单元格值将类似于 1001.T0502,我链接到的实际文件夹名称将是项目 #1001.T0502。因此,在我的 address1 变量中,我创建了文件夹的路径。

但是,当我这样做时,它会创建除 #1001.T0502 之外的所有路径,并最终停止在"\Item"处。如果我删除数字符号(#(,尽管它包含数字并最终成为项目 1001.T0502。由于某种原因,数字符号阻止它走正确的路径。我在这里错过了什么?已经有 200 个文件夹在文件夹名称中带有数字符号,所以现在返回并将其取出将是一项太多的工作。

任何帮助将不胜感激。谢谢!

不能在文件名中使用井号字符作为 Office 程序中的超链接。在此处查看官方Microsoft文档:

https://support.microsoft.com/en-us/help/202261/you-cannot-use-a-pound-character-in-a-file-name-for-a-hyperlink-in-an

如果你问我,似乎完全是古怪的,但唉,我认为你正在试图解决一个无法解决的问题。

但是,不要害怕,我确实想到了一个潜在的解决方法。与其使单元格成为实际的超链接,不如使用下划线将单元格重新着色为蓝色,然后使用此小技巧捕获何时选择单元格并打开Windows资源管理器到相应的文件路径。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
If Not Intersect(Target, Range("A1:A100")) Is Nothing Then
Shell "explorer ""C:UsersDesktopTestsComm ReviewItem #" & Target.Value & """", vbNormalFocus
End If
End If
End Sub

我在这里能看到的唯一缺点是,使用箭头键选择单元格也会打开相应的文件夹。可能有一个解决方法,但我现在没有时间研究它。

我希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新