Страницы: 1
RSS
Vba надстрочный текст, Сделать часть текста надстрочным
 
Имеется текст в ячейке типа 12к/с/12к/с/12к/с
надо сделать к/с были надстрочными
цифры могут быть разные но суть такая что идет цифра потом к/с, или с/с или вообще может быть 12с/с+4к/с/13с/с/ 10к/с
мне вот нужно понять как именно сделать часть текста в ячейке к/с или с/с надстрочными, думал как то через case но я им не пользовался ни разу, не могу понять как. Еще вариант был просмотра ячейки на текст определенный и заменить его опять же он несколько раз повторяется. На форумах ничего похожего не нашел
Текс создается кодом типа (это часть одного условия)
Цитата
Код
...

If list.cells(I, 15) = 0 and list.cells(I, 16) > 0 then
    list.cells(I, 6) =list.cells(I, 8) & "к/с/" & list.cells(I, 10) & "к/с/" & list.cells(I, 12) & "к/с"
...
натолкните на мысль гуру макроса excel:)
 
Заменить в xml ячейкт то что нужно на конструкцию того же но с надстрочником, используя RangeValueDataType
значения ячейки. Конечно если там не формула.  Две подстановки и результат обратно.
По вопросам из тем форума, личку не читаю.
 
БМВ, не понял как объединить ячейку простую с ячейкой надстрочной, выдает ошибку.
 
Никак не объединить, надо форматировать текст в ячейке после записи в неё объединенного текста.
Цитата
Antykiller написал:
натолкните на мысль
Вы бы пример приложили - глядишь кто и сможет более конкретно ответить. Потому что сейчас не очень понятно, в какой момент это надо делать и можно ли как-то определить автоматически, в каких ячейках какой стиль шрифта. В общих чертах изменить часть текста в ячейке на надстрочный можно так:
Код
Cells(I, 6).Characters(Start:=4, Length:=3).Font.Superscript = True

изменит 3 символа в ячейке на надстрочный, начиная с 4-го символа.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, текст идет такой число (от однозначного до ч-х значного) затем к/с надстрочные. И так 3 раза в каждой ячейке то есть к/с будет встречаться от одного раза до 3, и все их нужно заменить. Можно добавить какой-нибудь символ типа скобок между ними чтобы искать значения в скобках но как потом убрать скобки чтоб он еще раз проверил эту ячейку...
ps сижу с телефона код нет возможности загрузить. Дома буду попробую что-нибудь сделать чтоб было понятнее.
 
Изменено: Antykiller - 14.05.2024 09:42:10
 
Примерно так должно выглядеть после обработки макросом. Это формулами сделал. Но мне не нравится
 
Antykiller, если набора хватит, то можно заменить символы на соответствующие надстрочные из коллекции Юникода. Это уже будут другие символы (а не визуальное форматирование старых) — со всеми вытекающими. Зато [замена будет происходить] намного быстрее на больших объёмах.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Код
With ActiveCell
    .Value(11) = Replace( _
    Replace( _
    Replace(.Value(11), "<Data ss:Type=""String"">", "<ss:Data ss:Type=""String"" xmlns=""http://www.w3.org/TR/REC-html40"">"), _
        "к/с", "<Sup>к/с</Sup>"), _
        "с/с", "<Sup>с/с</Sup>")
End With
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх