Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Форматирование частей текста в ячейке, VBA
 
А смогу ли я как нибудь узнать начальную позицию при использовании Replace? Ведь длинна заменяющего текста может отличаться.
Если бы это было возможно, тогда не проблема была бы создать массив с Start и Length и после замены сделать форматирование.
Форматирование частей текста в ячейке, 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 - здесь не подходит, он меняет формат всей ячейки.
Слияние с вордом, где это без проблем можно сделать тоже не подойдёт из-за поставленной задачи.
Раскинуть заменяемые данные на отдельные ячейки не получается, хотел сразу так сделать, но увы.

Что можете посоветовать? В какую сторону думать?
Можно ли заменить часть данных в ячейке по идентификатору?, VBA
 
JayBhagavan, идея хорошая, в бущущем 100% я её использую, но к сожалению именно к этой задаче она не подойдёт. Бухи хотят, чтобы результат сохранялся в этой же книге excel.

Михаил Лебедев, спасибо за инфу, я всего с полгода время от времени сталкиваюсь с vba, потому много чего не знаю. Например про ограничение в пол листа А4, учту )

Всем спасибо!
А пока я нашёл решение, пусть может быть оно и кривое, но задачу свою выполняет:
После создании нового листа на основе шаблона произвожу в нём замены макросом.
Код
    shtNew.Cells.Replace What:="{rec_id}", Replacement:=shtMain.Cells(rowCurrent, 1), LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    shtNew.Cells.Replace What:="{date_ttn}", Replacement:=shtMain.Cells(rowCurrent, 4), LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

и так далее....

Наверное такой подход какой-то лютый deprecated...
Изменено: deoniszp - 11.12.2018 18:44:42
Можно ли заменить часть данных в ячейке по идентификатору?, VBA
 
Добрый день всем пользователям. Часто заглядываю на этот сайт в поиске каких-то интересных решений. Но сейчас появилась задача, которую я даже сформулировать в названии темы не могу. Поиск по форуму даёт не совсем то, что нужно...

Задача следующая. Я делаю шаблон на скрытом листе с договором. Потом копирую его в новый лист и заполняю. Но параметров для заполнения очень много и собирать это конкатенацией не сильно хочется, так как при сопровождении данного кода потом могут возникнуть трудности. Сделать параметры отдельными ячейками тоже не представляется возможности, очень некрасиво будет.

Пример из шаблона будет выглядеть примерно так:
...на підставі накладної від {date_nakl} № {id_nakl} податкового векселя від  {date_veks} {number_veks} на суму акцизного податку {sum} гривень, який взято на облік {date_create} за № {rec_id}...

И это только малая часть текста.
Существует ли возможность реализовать вот такое заполнение? Результаты таких строк будут в одной обьединённой ячейке на ширину листа с возможностью переноса строк. И это будет соответствовать поставленной задаче.

Или всё-таки придётся идти по длинному пути?
Страницы: 1
Наверх