Страницы: 1
RSS
Форматирование частей текста в ячейке, VBA
 
Добрый день. Подскажите возможные варианты решения следующей задачи если они есть:

Рассмотрим это на примере одной ячейки.
У меня есть шаблон где в одной из ячеек прописано:
Цитата
складено цей акт про те, що за довіреністю від {date_dover}{number_dover} на підставі товарно-транспортної накладної від {date_ttn}{number_ttn}

При выполнении макроса следующим кодом:
Код
'...
shtNew.Cells.Replace What:="{number_dover}", Replacement:=shtMain.Cells(iCurrent, 3), LookAt _
   :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
shtNew.Cells.Replace What:="{date_dover}", Replacement:=GetDateName(shtMain.Cells(iCurrent, 4)), LookAt _
   :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
' и так далее ...
я получаю приемлимый для себя результат:
Цитата
складено цей акт про те, що за довіреністю від 01 листопада 2018 р. № АА-32 на підставі товарно-транспортної накладної від 04 листопада 2018 р. № 00258

И всё было бы хорошо, если бы не стояла задача выделить жирным шрифтом то, что мы заменили, получив следующий результат:
Цитата
складено цей акт про те, що за довіреністю від 01 листопада 2018 р.АА-32 на підставі товарно-транспортної накладної від 04 листопада 2018 р.00258
Application.ReplaceFormat - здесь не подходит, он меняет формат всей ячейки.
Слияние с вордом, где это без проблем можно сделать тоже не подойдёт из-за поставленной задачи.
Раскинуть заменяемые данные на отдельные ячейки не получается, хотел сразу так сделать, но увы.

Что можете посоветовать? В какую сторону думать?
 
Смотреть в сторону свойства Characters
Код
Range(_).Characters(Start:=25, Length:=4).Font.Bold = True
Задает параметры шрифта для части текста в ячейке, соответственно по начальной позиции и длине текста.
Изменено: Kostya_Ye - 14.12.2018 12:38:52
 
А смогу ли я как нибудь узнать начальную позицию при использовании Replace? Ведь длинна заменяющего текста может отличаться.
Если бы это было возможно, тогда не проблема была бы создать массив с Start и Length и после замены сделать форматирование.
 
InStr - может найти начальную позицию
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
deoniszp написал: возможные варианты решения
Согласие есть продукт при полном непротивлении сторон
Страницы: 1
Наверх