在Excel中,我尝试创建显示unicode文件夹图标(以及其他各种图标)的超链接。我可以通过右键单击->超链接->,然后从Web浏览器“剪切并粘贴”字符来手动执行此操作。我的问题是我试图用VBA添加超链接,但是我不确定该怎么做。这是我正在尝试的代码,但出现错误。您可以在我的代码中创建超链接,我正在使用TextToDisplay:= ChrW(&H1F4C1)的ChrW功能。不幸的是,Excel到达该行时会引发错误。
'Purchase Orders Folder
ActiveSheet.Range("ProjectTable[POs]").Cells(lastTblRowNum).Select
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:=poPath, TextToDisplay:=ChrW(&H1F4C1)
ChrW函数接受的字符代码有一个上限(请参阅MSDN文档)。
字符代码的正常范围是0–255。但是,在DBCS系统上,字符码的实际范围是-32768–65535。
在这种情况下,文件夹符号的字符代码为128193,因此超出此功能的范围。
根据该问题的建议答案之一(来自Mark Tolonen),您的代码可能如下(如果您运行的是Excel 2013或更高版本):
'Purchase Orders Folder
ActiveSheet.Range("ProjectTable[POs]").Cells(lastTblRowNum).Select
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:=poPath, TextToDisplay:=WorksheetFunction.Unichar(&H1F4C1)
如果您运行的是Excel 2010或更低版本,则必须使用上述问题中提供的其他答案之一。如果您选择使用HTML解决方法的milevyo答案,则必须添加以下内容:
Function GetUnicode(CharCodeString As String) As String
Dim Doc As New HTMLDocument
Doc.Body.innerHTML = "&#x" & CharCodeString & ";"
GetUnicode = Doc.Body.innerText
End Function
然后您的代码将是:
'Purchase Orders Folder
ActiveSheet.Range("ProjectTable[POs]").Cells(lastTblRowNum).Select
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:=poPath, TextToDisplay:=GetUnicode("1F4C1")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句