excel - Excel VBA 指的是使用图标/表情符号作为名称一部分的工作表
问题描述
我正在使用 Excel for Office 365 MSO 64 位。
我想编写一个 VBA 宏,它根据工作表的名称在工作簿中选择不同的工作表。
例如,我有两行 VBA 代码激活工作簿,然后通过工作表的名称选择工作簿中的特定工作表。
Windows("myworkbook").Activate
Sheets("mysheet").Select
但是,我必须处理一些包含图标或表情符号的工作表。例如,有一个具有以下名称的工作表:“患者”。
如果我尝试像这样将图标/表情符号粘贴到 VBA 中:Sheets(" Patient").Select
,该图标不会显示在 VBA 编辑器中。相反,我得到Sheets("????? Patient").select
.
我也尝试过使用 ChrW() 进行编码?救护车角色(见此处:https ://www.compart.com/en/unicode/U+1F691 )
当我在下面运行这个宏时),我得到一个invalid procedure call or argument
如下所述的。
Sub SelectWeirdSheet()
Windows("MYWorkbook.xlsx").Activate
x = ChrW(128657) ' get invalid procedure call or argument here
Sheets(x & " Patient").Activate
End Sub
我也试过救护车的代码......也试过ChrW(&H1F691)
,但我得到了同样的错误。
我怀疑我对 ChrW() 使用了错误的参数,但我迷路了。
编辑:所以,文档说我对 ChrW() 的论点超出了范围。这有助于解释错误,但我仍然缺少解决方法。
问题:有没有办法引用使用 VBA 来选择名称中包含图标/表情符号的工作表?
我知道您也可以像这样按索引号参考工作表Sheets(3).Select
。但是,在某些情况下,我提前不知道工作表的索引,但我会知道工作表的名称,因此我最好按名称调用工作表。
谢谢你。
解决方案
为了正确处理表情符号,应将其拆分为两个单独的 unicode 字符。在这种情况下,它将是x = ChrW(&HD83D) & ChrW(&HDE91)
这两个 unicode 字符组成了救护车表情符号。
所以,这个宏现在可以工作了。
Sub SelectWeirdSheet()
Windows("MYWorkbook.xlsx").Activate
x = ChrW(&HD83D) & ChrW(&HDE91)
Sheets(x & " Patient").Activate
End Sub
在所有地方的reddit上找到了解决方案https://www.reddit.com/r/excel/comments/6pq1r1/vba_how_can_i_write_emojis_using_chrw/
推荐阅读
- python - ctrl 单击不适用于 python 项目 pydeveditor
- ionic-framework - 为离子标签项目设计样式
- arrays - 您可以将函数存储在数组中并根据需要调用它们吗?
- ruby-on-rails - ActiveRecord::RecordInvalid:验证失败:密钥不能为空
- django - 努力在 DetailView 页面中显示复选框数据
- javascript - 如何在 JavaScript 中使用 PHP?
- domain-driven-design - 领域驱动设计 - 从 UI 增量保存
- php - 无法从 PHP 函数回显或打印
- c++ - 添加了 Info.plist 但 Xcode 仍然崩溃
- reactjs - 如何通过reactjs在点击事件上批准待处理按钮显示