在excel vba中使用超链接的path名中的#号

我正在创build一个vba For循环来遍历一个范围内的单元格,并根据单元格内的文本创build一个到文件夹的超链接。 见下文:

Set rng = Worksheets("Sheet1").Range("A1:A100") For Each cell In rng address1 = "C:\Users\Desktop\Tests\Comm Review\Item #" & 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。 所以在我的address1variables我创build文件夹的path。

但是,当我这样做的时候,它创build了一切,但#1001.T0502,并最终停在“\ Item”的path。 如果我要删除号码(#),尽pipe它包含号码,最后成为项目1001.T0502。 由于某种原因,数字符号阻止了它制作正确的path。 我在这里错过了什么? 已经有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资源pipe理器到相应的文件path。

 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:\Users\Desktop\Tests\Comm Review\Item #" & Target.Value & """", vbNormalFocus End If End If End Sub 

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

我希望这有帮助!