excel - 在 Excel 中,使用 VBA 创建带有 unicode“文件夹”符号的超链接
问题描述
在 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 文档)。
charcode 的正常范围是 0–255。但是,在 DBCS 系统上,charcode 的实际范围是 -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")
此外,请确保添加对 Microsoft HTML 对象库的引用。
推荐阅读
- ios - UICollectionView 保持水平列表滚动位置
- laravel - Laravel - 在单个查询中使用多连接
- gulp - 从类中的属性定义创建 json
- r - 将 JSON 数据拉入 R Dataframe
- python - 如何在 x 轴上缩放字符串的集合
- python - 将对象列出到单个 CSV
- r - 将带有虚拟变量的数据框转换为分类变量
- performance - 当涉及不同服务器以获得响应时,如何衡量性能?
- android - BottomNavigationView:如何删除带连字符的标签
- embedded-linux - 如何将 BlueZ 配置为要求连接设备输入匹配的密码?