相关疑难解决方法(0)

如何使用VBA从Excel工作表中删除表情符号?

我有一个包含表情符号(例如)的电子表格,并且我正在寻找一种使用Excel VBA将表情符号替换为null的解决方案。

可以使用Excel替换操作删除表情符号,因此我记录了一个宏来自动执行替换。我打开了录制的宏,它显示如下:

Sub Remove_Emojis()

    Cells.Replace What:="??", Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
End Sub
Run Code Online (Sandbox Code Playgroud)

问题在于,VBA无法识别表情符号()并将其替换为“ ??”,即,VBA无法识别高于特定值的Unicode字符。

我尝试替换“ ??” 与ChrW()

Sub Remove_Emojis()

    Cells.Replace What:=ChrW(128515), Replacement:="", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
End Sub
Run Code Online (Sandbox Code Playgroud)

但这会导致错误:

参数的无效过程调用

因为ChrW()函数不允许大于65535的值。注意:如果参数的值在-32,767到65,535之间,则ChrW()函数将起作用。

我希望应该在VBA中支持这样做,因为它可以在Excel中完成。

excel vba

0
推荐指数
1
解决办法
269
查看次数

标签 统计

excel ×1

vba ×1