如何在Excel VBA中检测Unicode欧姆符号并实现数组匹配
用VBA检测电子表格中的欧姆符号并匹配Unicode单位格式
问题需求
我在使用VBA对电子表格做格式化时,需要针对不同单位应用专属格式。目前想直接检测欧姆符号(Unicode编码U+03A9),比如通过类似if left(string,1) = something here then的逻辑实现,不想用"R"或"ohm"来替代。
另外,我原本通过Split命令拆分字符串数组来比对单元格内容,示例代码如下:
LIST = " m mm mpm m/min s Pa kg N Nm mm/s Hz rpm GBP ul rad/s N/mm perc PC rev/s MPa psi N/mm2 mm2 " WrdArray() = Split(LIST, " ")
之后会把单元格内容和数组元素逐一比对。我考虑过把Unicode字符拼进这个字符串,但担心需要使用不同的字符串类型,而且VBA的IDE对Unicode字符支持不佳,这给我带来了不少麻烦。
解决方法及验证
我尝试了Ike的建议,达到了理想效果。按照该方法,我在单位列表中直接通过ChrW()添加Unicode字符,同时还加入了微法拉(μF)的混合格式,代码如下:
LIST_TAG2 = " " & ChrW(8486) & " " & ChrW(937) & " " & ChrW(&HB5) & "F "
意外的是,原本的匹配逻辑依然有效。其中ss是存储单元格文本的字符串变量,匹配逻辑代码如下:
WrdArray4() = Split(UCase(LIST_TAG2), " ") For jj = LBound(WrdArray4) To UBound(WrdArray4) If WrdArray4(jj) = UCase(Trim(ss)) Then CELL_TYPE = IS_TAG2 B = True End If Next jj
内容的提问来源于stack exchange,提问作者REPuzzle
相关产品推荐
相关产品推荐

