使用从VBA调用的JAVA .jar在Excel中更改单元格内容

时间:2017-10-14 10:51:50

标签: java vba excel-vba converter non-ascii-characters

我在工作中遇到了一些具体问题。 我收到的XLS文件包含日文字符和字母和数字的内容,但都是全宽日文格式。我的问题是Excel不会将这些识别为普通字母和数字。 我找到了转换器全宽< - >的网页半角字符,但手动复制,粘贴和覆盖每个单元格太慢。 还有一个JAVA .jar文件,据说可以进行相同的转换(Class Transliterator)。 我希望找到一种方法如何为定义范围内的每个单元格运行此Java函数,并以半角(正常)字符返回其值,以便创建原始XLS文件的半角副本。

单元格值的实际示例如下: 原始细胞内容:#01A-110 转化后所需的细胞含量:#01A-110

谢谢。 PS。我知道如何在VBA中循环单元格以及我需要的所有内容,但我找不到的是桥接返回新值的JAVA(作为字符串)。

1 个答案:

答案 0 :(得分:0)

实际上,我在VBA中找到了解决方案,因为运行.JAR原来是不可能的。

解决方案是  StrConv(字符串,转换,[LocaleID])

VBA selective conversion of double-byte to single-bye characters

重要的: 在不同的lang环境中,必须将LocaleID设置为相应的字符集 [LocaleID] - 一个可选参数,指定LocaleID。

有关ID代码,请参阅https://support.microsoft.com/cs-cz/help/221435/list-of-supported-locale-identifiers-in-word

然后,工作代码如下所示:

Sub zen2han()

Dim CLRange As Range

对于每个选择中的CLRange

CLRange.Value = StrConv(CLRange.Value,vbNarrow,1041)

下一个CLRange

End Sub