关于excel:通过vba的挂锁符号

Padlock symbol through vba

是否可以打印挂锁符号(打开


似乎Excel将特殊字符存储为UTF-16。只要您拥有适合16位的代码,就很容易:只需使用函数ChrW转换代码即可。例如,闹钟的代码为U 23F0,因此您可以编写ActiveCell.Value = ChrW(&H23F0)并得到闹钟(前缀&H定义一个十六进制数字)。

但是,当您遇到的字符不适合这16位时,您必须找出UTF-16代码并将其连接起来。我发现的锁是U+1F512U+1F513,它们的UTF-16代表分别是0xD83D 0xDD12。 0xD83D 0xDD13。所以你写类似

1
ActiveCell.Value = ChrW(&HD83D) & ChrW(&HDD12)

当然,您需要为支持这些字符的单元格设置一种字体。

我发现http://www.fileformat.info/info/unicode/char/search.htm有助于查找匹配的字符。如果您已经有一个字符并且可以将其粘贴到单元格中,则可以使用我在此答案中编写的代码:https://stackoverflow.com/a/55418901/7599798


您需要添加一个unicode符号。以下代码将在单元格1,1中添加锁定或解锁符号。

1
2
3
4
5
6
7
8
9
Sub SetUnlock()
    Sheet1.Cells.Font.Name ="Segoe UI Symbol"
    Sheet1.Cells(1, 1).Value = ChrW(&HE1F7)
End Sub

Sub SetLock()
    Sheet1.Cells.Font.Name ="Segoe UI Symbol"
    Sheet1.Cells(1, 1).Value = ChrW(&HE1F6)
End Sub

您可以使用"插入"功能区中的"添加符号"按钮来查找其他字体不同的符号。