powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / 1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
9 сообщений из 9, страница 1 из 1
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #33133541
Alexey Mytcykov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из 1С формируется документ Word на основе шаблона. Имеется таблица, в первой ячейке которой находится текст с форматированием. Остальные ячейки пустые. Необходимо скопировать текст из первой ячеки в остальные, не теряя форматирование.

Познания VB минимальные, решить проблему с наскока не получилось. Пытался сделать так (из 1С):
Код: plaintext
1.
2.
3.
4.
5.
6.
Table = Документ.Tables(Документ.Tables.Count);
Table.Cell( 1 , 1 ).Select();
Text = Word.Selection.Range.FormattedText;

... // Цикл по строка и столбцам
Table.Cell(Row,Column).Range.FormattedText = Text;
... // КонецЦикла

В результате на последнем операторе ошибка:
Microsoft Word: Не удается скопировать содержимое между двумя этими диапазонами.

Помогите, плиз, решить проблему.
...
Рейтинг: 0 / 0
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #33134062
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, разве так не проще:
Код: plaintext
1.
2.
3.
Table.Cell( 1 , 1 ).Select();
Word.Selection.Copy();
Table.Select();
Word.Selection.Paste();
Или я чего не понял?
...
Рейтинг: 0 / 0
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #33134532
Alexey Mytcykov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таком варианте в таблицу добавляется новая ячейка. А мне нужно заменить текст в существующей.
...
Рейтинг: 0 / 0
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #33136291
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexmyt

при копировании ячейки в ячейку, сохраняется форматирование копируемой ячейки


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public Function MyCopy()
    Dim tbl As Table
    Set tbl = ThisDocument.Tables( 1 )
    'копируем нужную ячейку
    tbl.Cell( 1 ,  1 ).Select
    Selection.Copy

    For i =  1  To  5 
        'вставляем данные
        tbl.Cell( 2 , i).Range.Paste
    Next i
End Function
...
Рейтинг: 0 / 0
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #33136783
Alexey Mytcykov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HandKot

Действительно, решение работает... Но только если в таблице больше 1 строки. Если одна строка - пвставляются новые ячейки.

Пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Sub test()
    Dim tbl As Table
    
    Set tbl = ThisDocument.Tables.Add(ThisDocument.Content,  1 ,  5 )
    tbl.Cell( 1 ,  1 ).Range.Text = "bla-bla"
    tbl.Cell( 1 ,  1 ).Range.Copy
    
    tbl.Cell( 1 ,  2 ).Range.Paste
End Sub

После выполнения таблица будет иметь размер 1х6.
...
Рейтинг: 0 / 0
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #33136983
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"ну, если гора не идет к Магомету, то Магомет идет к горе"

можно предложить добавить строку (под строкой с форматом/информацией), записать все что нужно в новую строку, а потом строку с форматом удалить
...
Рейтинг: 0 / 0
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #33136989
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо сделать так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub test()
    Dim tbl As Table
    
    Set tbl = ThisDocument.Tables.Add(ThisDocument.Content,  2 ,  5 )
    tbl.Cell( 1 ,  1 ).Range.Text = "bla-bla"
    tbl.Cell( 1 ,  1 ).Select
    Selection.Copy
 
    tbl.Cell( 1 ,  2 ).Range.Paste
    tbl.Cell( 1 ,  3 ).Range.Paste
    tbl.Cell( 1 ,  4 ).Range.Paste
    tbl.Cell( 1 ,  5 ).Range.Paste
    
    tbl.Rows( 2 ).Delete
End Sub
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #34862787
DionX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как скопировать строку таблицы, если некоторые ячейки в ней объеденены по вертикали?
пытаюсь так:
Код: plaintext
1.
Table.Rows(N).Select()
сразу выдаёт ошибку
Microsoft Word: Отсутствует доступ к отдельным строкам, поскольку таблица имеет ячейки, объединенные по вертикали.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
    #38659165
Steelvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно не заниматься связкой WORD с 1С, а получать сразу красивые отформатированные документы с использованием ОптимаСофт:Документы.
Скриншоты можно посмотреть http://www.optimasoft.info/index_doki.html
Там используется внешняя компонента, встроенная в 1С и управляемая кодом 1С.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / 1С + Word: Скопировать форматированный текст из одной ячейки таблицы в другую
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]