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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2013, 21:03   #1
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию Перемещение курсора под таблицу

День добрый.
У меня на странице Word имеется таблица, скопированная из другого документа. При этом курсор находится в левой верхней ячейке. В памяти имеется полное описание таблицы, т.е. объект Table.
Каким образом программно можно переместить курсор под таблицу? Т.е. чтобы он встал в строку, следующую за таблицей (см. картинку). (сверху и снизу таблицы могут находиться любы данные)
Изображения
Тип файла: png Проблема.png (959 байт, 248 просмотров)
m9yt вне форума Ответить с цитированием
Старый 08.11.2013, 00:55   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Допустим, ваш объект Table имеет имя Tbl, тогда так:
Код:
Tbl.Range.Paragraphs.Last.Next.Next.Select
Selection.Collapse wdCollapseStart
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 08.11.2013, 10:47   #3
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Допустим, ваш объект Table имеет имя Tbl, тогда так:
Код:
Tbl.Range.Paragraphs.Last.Next.Next.Select
Selection.Collapse wdCollapseStart
На C# сделал так - не работает. Может это и не совсем соответствует вашему коду, но у Next нет метода Select, только у Range
Код:
object collapse = Microsoft.Office.Interop.Word.WdCollapseDirection.wdCollapseStart;
object count = 1;

Word.Table table = currentDoc.Tables[1];
table.Range.Copy();
doc.Application.Selection.Range.PasteAndFormat(Microsoft.Office.Interop.Word.WdRecoveryType.wdFormatOriginalFormatting);

table.Range.Paragraphs.Last.Next(ref count).Next(ref count).Range.Select();
doc.Application.Selection.Collapse(ref collapse);

Последний раз редактировалось m9yt; 08.11.2013 в 10:50.
m9yt вне форума Ответить с цитированием
Старый 08.11.2013, 14:18   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

запутал вас только. Переборщил с Next.
На VBA:
Код:
Tbl.Range.Paragraphs.Last.Next.Range.Select
Selection.Collapse wdCollapseStart
На C#:
Код:
using word = Microsoft.Office.Interop.Word;

word.Application wdApp = new word.Application() { Visible = true };
word.Document wdDoc = wdApp.Documents.Open(@"путь_к_документу");
word.Table wdtbl = wdDoc.Tables[1];
wdtbl.Range.Paragraphs.Last.Next().Range.Select();
wdApp.Selection.Collapse(word.WdCollapseDirection.wdCollapseStart);
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 08.11.2013, 23:18   #5
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию

Спасибо, работает!
m9yt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение курсора Painkiller_13 Общие вопросы Delphi 5 24.01.2012 17:50
перемещение курсора по таблице dm_alex73 Microsoft Office Excel 24 15.02.2011 13:16
Перемещение курсора SPQR10000 Общие вопросы Delphi 4 23.10.2010 17:27
Перемещение курсора мыши UNREALcv Помощь студентам 1 11.04.2010 11:39
Перемещение курсора kykysya БД в Delphi 2 07.04.2009 20:33