Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2013, 08:34   #1
LiliPOOtin
Новичок
Джуниор
 
Регистрация: 17.04.2013
Сообщений: 2
По умолчанию Скопировать текст содержащийся в ячейке таблицы и вставить этот текст в место документа помеченное закладкой.

Всем привет.

Задача: Скопировать текст содержащийся в ячейке таблицы и вставить этот текст в место документа помеченное закладкой.

Мой код:

ActiveDocument.Tables(1).Cell(1, 5).Select 'Выделяю ячейку в таблице текст которой нужно скопировать
Selection.copy 'Копирую текст в буфер обмена

'в ворде в ручную ставлю закладку и называю ее My_BookMark

On Error Resume Next
Selection.GoTo What:=wdGoToBookmark, Name:="My_BookMark"
If Err Then MsgBox "Закладка не была установлена" 'Переставляю курсор в место закладки

Selection.Paste 'Вставляю текст который был скопирован

К сожалению у меня вставляеться целиком ячейка с полями причем в туже таблицу с которой я ее копировал, а мне нужен текст ячейки и чтоб он вставлялся в место в котором установлена закладка My_bookmark

Подскажите пожалуйста как правильно написать
LiliPOOtin вне форума Ответить с цитированием
Старый 17.04.2013, 10:07   #2
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 906
По умолчанию

По поводу взятия данных из Word-таблицы.

В конце каждой ячейки Word-таблицы всегда есть два символа:
  1. символ "Конец ячейки". Его видно, если включен режим отображения непечатаемых символов. Символ "Конец ячейки" в виде кружка. Порядковый номер этого символа в ANSI-таблице 13
  2. символ границы ячейки. Этот символ не видно на мониторе никогда. Порядковый номер этого символа в ANSI-таблице 7
Из-за наличия этих двух символов в ячейке, взять данные из ячейки не получается так просто. Прежде чем взять данные из ячейки, нужно обработать текст из ячейки, удалив из него эти два символа.

Пример кода:
Код:
Sub Procedure_1()

    Dim myCellText As String
    
    myCellText = Replace(ActiveDocument.Tables(1).Cell(1, 1).Range.Text, Chr(13) & Chr(7), "")
    
End Sub
Скрипт вне форума Ответить с цитированием
Старый 17.04.2013, 13:54   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Код:
Dim oRng As Range
Dim bm As Bookmark
Dim sText As String
'Если закладка существует
If ActiveDocument.Bookmarks.Exists("Имя закладки") Then
	'Текст из ячейки
	sText = ActiveDocument.Tables(1).Cell(1, 5).Range.Text
	sText = Left$(sText, Len$(sText)-2)
    'Запоминаем место закладки
	Set bm = ActiveDocument.Bookmarks("Имя закладки")
	Set oRng = bm.Range
	'Задаём текст закладки. При этом закладка исчезает
	oRng.Text = sText
	'Добавляем закладку под старым именем на старое место, но уже с новым текстом
	ActiveDocument.Bookmarks.Add "Имя закладки", oRng	
End If
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 17.04.2013, 19:51   #4
LiliPOOtin
Новичок
Джуниор
 
Регистрация: 17.04.2013
Сообщений: 2
По умолчанию

Приклоняюсь перед великим енотом огромное спасибо viter.alex

Скрипт твою строку так и не смог заставить работать но тоже благодарю
LiliPOOtin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли как-нибудь удалить, а затем вставить в нужное место в текстовике текст, не копируя весь документ. Jony217 PHP 3 17.01.2013 10:11
программно в 1 таблице, 1 строке, 1 ячейке таблицы Ворд сделать нужный текст Ципихович Эндрю Microsoft Office Word 5 31.05.2012 04:21
переход на заданный сайт или как вставить в заданное место заданный текст Biker89 Общие вопросы Delphi 23 29.05.2011 01:59
Залить цветом диапазон (строку таблицы), если в последней ее ячейке есть текст MasterLee Microsoft Office Excel 5 08.12.2010 09:47
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02