Удалить символы из строки (нормализация строки?) - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь удалить символы из строки в Excel с помощью макроса VBA. Например, строка "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» является своего рода заполнителем, который распознается / интерпретируется как «o» в Excel, но интерпретируется по-другому в VBA.Если я пытаюсь просто скопировать и вставить символ в VBA, я получаю «?».

Есть ли способ манипулировать или интерпретировать этот символ в VBA?Некоторые другие сообщения, которые я читал, казалось, указывали, что строка могла быть нормализована, но кодирование было у меня над головой.

Спасибо!

1 Ответ

0 голосов
/ 16 ноября 2018

Вам нужно понять, на каком персонаже вы анализируете:

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
...