Я использую VBA для форматирования своих электронных таблиц. Единицы имеют свой собственный формат. Мне было интересно, как обнаружить символ ома. (Согласно карте персонажей = U+03A9)
Я знаю, что могу написать это как R или как «Ом», но я видел несколько блестящих трюков на этом сайте и задавался вопросом, существует ли действительно простой метод уровня-
if left(string,1) = something here then ...
что мог сделать это.
Дополнительная сложность заключается в том, что я использую массивы, состоящие из строк из одной строки и команду 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, " ")
Затем я просто сравниваю ячейку с каждым членом массива.
Есть ли метод, который работает для этой ситуации?
Я думал объединить символы Юникода в эту строку, но тогда все это должно было бы быть строкой другого типа, не так ли?
Я знаком с VBA, но символы Unicode, когда IDE, похоже, не поддерживает их должным образом, представляют собой проблему.
Будем признательны за любую помощь, даже просто подсказку, как это сделать, и спасибо, что прочитали это.
Я только что попробовал предложение Айка ниже и получил это (выделено желтым), и это фантастика.
Правильный результат форматирования для символов Unicode
Ввод символов в список был в точности таким, как сказал Айк. Обратите внимание, здесь я также добавляю гибрид для блока microFarad.
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
Если вы хотите проверить определенное значение ячейки (например, выбранную ячейку) для символа Ω, используйте If AscW(selection) = 8486 ...
Что касается вашего списка: вы должны добавить символ Ω как LIST = ChrW(8486) & " m mm "
, так как вы не можете ввести его в редакторе VBE.
Хм - если вы ищете «unicode ohm», вы получите код, который я использовал, но действительно в Excel оба результата выглядят очень похоже
Я только что погуглил «Ом» и скопировал отображаемый символ из верхней части страницы в Excel - это был ChrW (937) - как раз собирался напечатать свой ответ, когда увидел ваш. Был удивлен, что вы нашли другого персонажа.
Fyi Дополнительная литература: Получить символы Unicode с большим шестнадцатеричным кодом FFFF и Альтернатива функции ChrW
Спасибо всем троим за исчерпывающий ответ. FunThomas хорошо заметил второй знак ома, и они кажутся идентичными, поэтому нужно искать оба. Также для дополнительной части ТМ за действительно ценный Unicode. Ответ Айка решил проблему простым способом. Еще раз спасибо всем вам.
Поскольку в OP упоминается U + 03A9 (что составляет десятичное число 937), я предполагаю, что это должно быть ChrW (937), что дает греческую заглавную омегу.