在Excel中,使用unicode“创建超链接”;文件夹";使用VBA的符号
在Excel中,我尝试创建显示unicode文件夹图标(以及其他各种图标)的超链接。我可以通过右键单击-->超链接-->然后从web浏览器中“剪切并粘贴”字符来手动执行此操作。我的问题是,我正在尝试使用VBA添加超链接,但我不确定如何添加。这是我正在尝试的代码,但我刚刚得到一个错误。 您可以看到,在我创建超链接的代码中,我使用了ChrW函数和TextToDisplay:=ChrW(&H1F4C1)。不幸的是,Excel在到达该行时会抛出一个错误在Excel中,使用unicode“创建超链接”;文件夹";使用VBA的符号,excel,vba,unicode,hyperlink,Excel,Vba,Unicode,Hyperlink,在Excel中,我尝试创建显示unicode文件夹图标(以及其他各种图标)的超链接。我可以通过右键单击-->超链接-->然后从web浏览器中“剪切并粘贴”字符来手动执行此操作。我的问题是,我正在尝试使用VBA添加超链接,但我不确定如何添加。这是我正在尝试的代码,但我刚刚得到一个错误。 您可以看到,在我创建超链接的代码中,我使用了ChrW函数和TextToDisplay:=ChrW(&H1F4C1)。不幸的是,Excel在到达该行时会抛出一个错误 'Purchase Orders Folder
'Purchase Orders Folder
ActiveSheet.Range("ProjectTable[POs]").Cells(lastTblRowNum).Select
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:=poPath, TextToDisplay:=ChrW(&H1F4C1)
ChrW函数接受的字符代码有一个上限(请参阅) charcode的正常范围为0–255。但是,在DBCS系统上 字符代码的实际范围为-32768–65535 在您的情况下,文件夹符号的字符代码是128193,因此它超出了此函数的范围 从Mark Tolonen的建议答案中选择一个,您的代码可以是以下代码(如果您运行的是Excel 2013或更高版本): 如果您运行的是Excel 2010或更低版本,则必须使用上述问题中提供的其他答案之一。如果选择milevyo的答案,该答案使用html解决方案,则必须添加以下内容:
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")
另外,请确保您访问Microsoft HTML对象库。作为对引用链接的进一步说明:除了显示的worksheetfunction外,您还发现了两种使用字节操作的方法,两种是使用HTML变通方法,另一种是
worksheetfunction.FilterXML
@DecimalTurn我正在尝试您的解决方案,但我得到一个运行时错误“438”:对象不支持此属性或method@Frank,您使用的是什么版本的Excel?@DecimalTurn 2010Professional@Frank–Unichar功能仅适用于Windows上的Excel 2013或更高版本,因此我编辑了我的答案以提供替代方案。
'Purchase Orders Folder
ActiveSheet.Range("ProjectTable[POs]").Cells(lastTblRowNum).Select
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:=poPath, TextToDisplay:=GetUnicode("1F4C1")