Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel中,使用unicode“创建超链接”;文件夹";使用VBA的符号_Excel_Vba_Unicode_Hyperlink - Fatal编程技术网

在Excel中,使用unicode“创建超链接”;文件夹";使用VBA的符号

在Excel中,使用unicode“创建超链接”;文件夹";使用VBA的符号,excel,vba,unicode,hyperlink,Excel,Vba,Unicode,Hyperlink,在Excel中,我尝试创建显示unicode文件夹图标(以及其他各种图标)的超链接。我可以通过右键单击-->超链接-->然后从web浏览器中“剪切并粘贴”字符来手动执行此操作。我的问题是,我正在尝试使用VBA添加超链接,但我不确定如何添加。这是我正在尝试的代码,但我刚刚得到一个错误。 您可以看到,在我创建超链接的代码中,我使用了ChrW函数和TextToDisplay:=ChrW(&H1F4C1)。不幸的是,Excel在到达该行时会抛出一个错误 'Purchase Orders Folder

在Excel中,我尝试创建显示unicode文件夹图标(以及其他各种图标)的超链接。我可以通过右键单击-->超链接-->然后从web浏览器中“剪切并粘贴”字符来手动执行此操作。我的问题是,我正在尝试使用VBA添加超链接,但我不确定如何添加。这是我正在尝试的代码,但我刚刚得到一个错误。 您可以看到,在我创建超链接的代码中,我使用了ChrW函数和TextToDisplay:=ChrW(&H1F4C1)。不幸的是,Excel在到达该行时会抛出一个错误

'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")