从字符串中删除字符(字符串归一化?)

时间:2018-11-16 13:53:54

标签: excel vba string excel-vba normalization

我试图利用VBA宏从excel中的字符串中删除字符。例如,字符串为“ UOZV3A-WB1○1.8ml vbn958Xzlv2”,我需要它返回“ UOZV3A-WB1”。很简单,我使用的代码是:

For Each c In Range("D2:D69")
If InStr(c.Value, "?") > 0 Then
    c.Value = Left(c.Value, InStr(c.Value, "?") - 1)
End If

Next c

我遇到的问题是宏中无法识别字符串(“ o”)中的单个字符。通过扫描QR码将字符串输入到单元格中。我怀疑“ o”是一种占位符,在excel中被识别/解释为“ o”,但在VBA中的解释不同。如果我尝试将字符复制并粘贴到VBA中,则会显示“?”。

是否可以在VBA中操纵或解释该字符?我读过的其他一些文章似乎表明可以对字符串进行规范化,但编码已超出我的脑袋。

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要了解要解析的字符:

Sub junkkiller()
    For Each c In Range("D2:D69")
        If InStr(c.Value, ChrW(9675)) > 0 Then
            c.Value = Left(c.Value, InStr(c.Value, ChrW(9675)) - 1)
        End If
    Next c
End Sub