Преобразование символов дроби Юникод (вульгарные дроби) в десятичные числа в Excel 2003 - PullRequest
2 голосов
/ 18 августа 2011

Я пытаюсь преобразовать следующий текст в десятичное число в Excel 2003:

"93⅛"

Выходные данные должны быть: 93,125

Я получил это для работы с ¼, ½, ¾, используя функцию замены в VBA: Например, это работает:

cur_cell = Replace(cur_cell, "½", " 1/2")

Однако символы ⅛ и семейства не поддерживаются в редакторе VBA. Они отображаются как ??. Вместо этого я попытался заменить значение Юникода напрямую:

cur_cell = Replace(cur_cell, " & ChrW$(&H215B) & ", " 1/8")

Но это не работает.

Есть ли хороший способ преобразовать эти строки в числа, которые я могу использовать?

1 Ответ

4 голосов
/ 18 августа 2011

Правильный синтаксис:

cur_cell = Replace(cur_cell, ChrW$(&H215B), " 1/8")

Ваш пример говорил: замените строку, состоящую из пробела, амперсанда, пробела [и т. Д.], На 1/8. Очевидно, это не то, что вы хотите сделать!

Я бы порекомендовал:

cur_cell.Value = Replace(Replace(cur_cell.Value, ChrW$(&H215B), ".125")," ","")

, чтобы обойти в Excel автоматическую замену дробей. Я просто не люблю полагаться на такие автоматические вещи. Почему бы не написать это как десятичное число сразу? Кроме того, мне нравится явно ссылаться на свойство ячейки .Value, а не полагаться на то, что оно является свойством по умолчанию.

...