VBA中无法识别的国际键盘逗号

时间:2018-06-28 08:01:33

标签: excel vba excel-vba

我正在尝试替换与英文键盘中标准逗号“”不同的逗号“,”。我相信另一个逗号来自中文键盘。因此,将其粘贴到VBA中时,只会将其识别为“?”。

如果我使用excel查找和替换,它将起作用。但是将其记录为宏将不会记录该效果,因为记录宏会将其重新协调为标准逗号。

有什么办法解决吗?谢谢!

2 个答案:

答案 0 :(得分:2)

由于您没有代码来显示您尝试过的内容,因此我无法为您进行测试。

但是要回答您的问题,一个选择是创建一个引用Unicode字符并以这种方式替换它们的vba脚本。

  

,= U + FF0C:完整逗号

     

,= U + 002C:COMMA {十进制分隔符}

答案 1 :(得分:2)

标准逗号是ASCII 44 dec / 2C十六进制。 “ combining逗号”是Unicode 65292 dec / U0326十六进制。

尝试

'for a single cell or string var
.cells(2, "A") = replace(.cells(2, "A").value2, chrw(65292), chr(44))

'for worksheet wide replacement
with worksheets("sheet1")
    .cells.replace what:=chrw(65292), replacement:=chr(44), lookat:=xlpart
end with