31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
1 |
|
31.05.2010, 23:52. Показов 14989. Ответов 28
Прошу подсказать: как программно определить номер строки в Word 2003 (там, где находится курсор)?
0 |
ironegg 1904 / 781 / 31 Регистрация: 11.02.2010 Сообщений: 1,567 |
||||
01.06.2010, 01:39 |
2 |
|||
возвращает номер строки на странице. этот же номер отображается в статусбаре окна Word
1 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
01.06.2010, 11:54 [ТС] |
3 |
СПАСИБО. ActiveWindow., пожалуй, было последнее, где я не покопал.
0 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
21.08.2010, 13:18 [ТС] |
4 |
Огромный облом!!!
0 |
Заблокирован |
|
21.08.2010, 13:39 |
5 |
vivat7,
0 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
21.08.2010, 14:13 [ТС] |
6 |
Да, мне нужно обязательно программно определить «глобальный» номер строки в Word2003.
0 |
Заблокирован |
|
21.08.2010, 14:18 |
7 |
vivat7,
0 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
21.08.2010, 14:40 [ТС] |
8 |
> Файл — Параметры страницы — Источник бумаги — Нумерация строк. Добавлено через 3 минуты
0 |
ironegg 1904 / 781 / 31 Регистрация: 11.02.2010 Сообщений: 1,567 |
||||
21.08.2010, 17:50 |
9 |
|||
через зад конечно, но, вроде, работает!
1 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
21.08.2010, 19:10 [ТС] |
10 |
Спасибо, этот код действительно работает.
0 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
23.08.2010, 12:05 [ТС] |
11 |
Отвечаю сам себе: Добавлено через 4 минуты Добавлено через 1 минуту
0 |
1904 / 781 / 31 Регистрация: 11.02.2010 Сообщений: 1,567 |
|
23.08.2010, 13:50 |
12 |
Код, который выводит глобальный номер страницы выглядит так причем сдесь номер страницы? CountBy — просто свойство определяющее способ нумерации строк (CountBy=5 ‘нумеруется каждая пятая строка). получить в переменную номер текущей строки с помощью объекта LineNumbering невозможно.
1 |
Заблокирован |
|
23.08.2010, 20:30 |
13 |
ironegg,
0 |
1904 / 781 / 31 Регистрация: 11.02.2010 Сообщений: 1,567 |
|
24.08.2010, 01:10 |
14 |
я знаю. знал всегда. действие моего кода основано на пункте меню «перейти». например строки таблицы (используемые, например для форматирования оглавления) мой код учитывает, а нумерация строк нет. это легко поправимо, если проверять, не находится ли текущая строка в таблице. считаю, что мой код более гибкий благодаря этой особенности
1 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
24.08.2010, 10:20 [ТС] |
15 |
Ответ конкретно для Ironegg. Добавлено через 10 минут Добавлено через 4 минуты
0 |
ironegg 1904 / 781 / 31 Регистрация: 11.02.2010 Сообщений: 1,567 |
||||
30.08.2010, 05:09 |
16 |
|||
пока vivat7 разбирается, как запустить на выполнение нужный код, я немного оптимизировал(на время выполнения) предыдущий вариант
немного сумбурно, но… на стареньком компе в Word 2001 код выплоняется за пару секунд даже на больших документах из 300 страниц и 15000 строк
1 |
Заблокирован |
|
30.08.2010, 08:19 |
17 |
в Word 2001 нет такого Wordа. Чтобы посмотреть, какие Wordы есть: Сервис — Параметры — Совместимость — Рекомендуемые параметры для «список всех версий Word».
0 |
31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
|
30.08.2010, 13:59 [ТС] |
18 |
Уважаемый Ironegg!
0 |
1904 / 781 / 31 Регистрация: 11.02.2010 Сообщений: 1,567 |
|
30.08.2010, 19:17 |
19 |
Busine2009, у меня другой подход — Справка, О программе. vivat7, перепроверь эту «недокументирванную возможность». у меня стойкое впечатление, что ты по ошибке запускаешь мой код
1 |
vivat7 31 / 17 / 0 Регистрация: 31.05.2010 Сообщений: 102 |
||||
30.08.2010, 20:52 [ТС] |
20 |
|||
vivat7, перепроверь эту «недокументирванную возможность». у меня стойкое впечатление, что ты по ошибке запускаешь мой код[/QUOTE] Мы люди тверёзые, чтоб нынче, да надысь перепутать :-)))
0 |
- Remove From My Forums
-
Question
-
I’m trying to get the line number, the number of paragraph and the number of page of a commont object in word macro document.
How I can do that ?
Thank you
-
Moved by
Monday, November 14, 2011 9:09 AM
(From:Visual Basic Language)
-
Moved by
Answers
-
Hi
Here is a hint
Sub Get_Comment_Information() Dim oComment As Comment Dim oCommentRange As Range For i1 = 1 To ActiveDocument.Comments.Count Set oComment = ActiveDocument.Comments(i1) Set oCommentRange = oComment.Scope.Paragraphs(1).Range Debug.Print "Page : " & oCommentRange.Information(wdActiveEndPageNumber) & vbTab _ & "Line : " & oCommentRange.Information(wdFirstCharacterLineNumber) & vbTab Next i1 End Sub
Cheers
Shasur
http://www.vbadud.blogspot.com http://www.dotnetdud.blogspot.com
-
Marked as answer by
danishani
Wednesday, February 1, 2012 5:34 AM
-
Marked as answer by
-
Hi benaloui,
Below an article on how to retrieve the line and paragraph number:
http://www.vbaexpress.com/kb/getarticle.php?kb_id=59
For the Page Number and Total Pages for example, you can use below code (run in a Module):
Sub test() Dim Pagnr As Integer Dim TotPages As Integer Pagnr = Selection.Information(wdActiveEndPageNumber) TotPages = ThisDocument.ComputeStatistics(wdStatisticPages) MsgBox "CurrentPage: " & Pagnr & " of TotalPages: " & TotPages End Sub
Hope this helps,
Daniel van den Berg | Washington, USA | «Anticipate the difficult by managing the easy»
-
Proposed as answer by
danishani
Saturday, January 28, 2012 5:53 PM -
Marked as answer by
danishani
Wednesday, February 1, 2012 5:34 AM
-
Proposed as answer by
|
|
|
Популярные разделы FAQ: Общие вопросы Особенности VBA-кода Оптимизация VBA-кода Полезные ссылки
1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость — сестра таланта.
3. Не забывайте использовать теги [сode=vba] …текст программы… [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Как определить номер текущей строки
, в таблице word
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Senior Member Рейтинг (т): 9 |
Есть вот такая штука:
Set tblToPrint = WordDoc.ActiveWindow.Selection.Tables(1) курсор стоит в какойто, мне неизвестной ячейке таблици. Как мне узнать номер текущей строки/столбца, бъюсь уже целый день над такой вроде ерундой! |
leo |
|
Цитата Mulder @ 04.08.08, 12:09 курсор стоит в какойто, мне неизвестной ячейке таблици. Как мне узнать номер текущей строки/столбца
RowIndex = Selection.Rows(1).Index ColIndex = Selection.Columns(1).Index |
Old Bat |
|
Moderator Рейтинг (т): 128 |
…WordDoc.ActiveWindow.Selection.Information(wdEndOfRangeColumnNumber) …WordDoc.ActiveWindow.Selection.Information(wdEndOfRangeRowNumber) |
Mulder |
|
Senior Member Рейтинг (т): 9 |
Гигантское спасибо! Работает! Добавлено 05.08.08, 06:47 |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- VB for Application
- Следующая тема
[ Script execution time: 0,0202 ] [ 16 queries used ] [ Generated: 14.04.23, 17:33 GMT ]
Номер текущей строки таблицы Ворд
Подскажите пожалуйста, как определить номер строки в таблице Ворд, в любой ячейке на строке находится курсор?
Для числа всех строк в таблице
Код:
int rows_count=Tables3.OlePropertyGet(«Rows»).OlePropertyGet(«Count»);
Пыталась работать с сылками Билдера. Он только дает ссылку на тип данных, OlePropertyGet или OleFunction. А что должно быть внутри, мне не догадаться.
4 ответа
4.8K
14 декабря 2005 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by richel
Подскажите пожалуйста, как определить номер строки в таблице Ворд, в любой ячейке на строке находится курсор?
Для числа всех строк в таблице
Код:
int rows_count=Tables3.OlePropertyGet(«Rows»).OlePropertyGet(«Count»);
Пыталась работать с сылками Билдера. Он только дает ссылку на тип данных, OlePropertyGet или OleFunction. А что должно быть внутри, мне не догадаться.
Опять я
(прет меня седня! За доклад про калькуляторы получил 5 за доклад и АВТОМАТОМ зачет!!! )
Во первых могу посоветовать одну вещь:
У тебя сам ворд конечно же есть, к нему должен быть установлен VBA (В ворде меню Севис/Макрос/Редактор VB) — открой — там и хелп замечательный, и поставив точечку после компонента, получаешь список всех его свойств и методов.
А если это продолжение предыдущей темы, то указатель торчит там, где ты последний раз выполняла .Select (если юзер не полазил), а если где оставлен ты не в курсе, то опять же через подметоды Selected’а можно нарыть где указатель. Т.е. указатель сам не поймаешь, но можно найти выделенный кусок текста, а с учетом того, что просто указатель — это выделенный кусок с нулевой длинной выделения…
1.2K
14 декабря 2005 года
richel
142 / / 20.01.2005
Цитата:
Originally posted by Jump
У тебя сам ворд конечно же есть, к нему должен быть установлен VBA (В ворде меню Севис/Макрос/Редактор VB) — открой — там и хелп замечательный, и поставив точечку после компонента, получаешь список всех его свойств и методов.
Я так и сделала, только тогда, когда узнала, что искать.
Вот решение вопроса:
Код:
rows_find=Tables3.OleFunction(«Cell», i, 2).OlePropertyGet(«RowIndex»);
ShowMessage(rows_find);
Так что, слава богу, все работает, пока, безукоризненно. Но еще встретятся трудные места.
Надеюсь, сохранится хорошее настроение и Вы поможете.;)
4.8K
14 декабря 2005 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by richel
Я так и сделала, только тогда, когда узнала, что искать.
Вот решение вопроса:
Код:
rows_find=Tables3.OleFunction(«Cell», i, 2).OlePropertyGet(«RowIndex»);
ShowMessage(rows_find);
Так что, слава богу, все работает, пока, безукоризненно. Но еще встретятся трудные места.
Я б не догадался насчет РоуИндекс… Не логичное имя. Логичней SelectedRow, т.к. все-таки имеет место выделение…
Меня малясь терзают смутные сомнения: а эта штука не i возвратит?
Цитата:
Originally posted by richel
Надеюсь, сохранится хорошее настроение и Вы поможете.;)
Да… Настроение — вещь ключевая. Я дак даже бы не взялся полностью через ворд мутить такую агрегацию Эт ж сколько нервоф… Плюс я втишь помешан на оптимальности, соответственно, то что я предложил сделать через разбор строчки — свойственное мне решение (Хотя еще больше я люблю не Стинг, а вообще *чар )
В общем к Вашим услугам
4.8K
14 декабря 2005 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by Jump
Меня малясь терзают смутные сомнения: а эта штука не i возвратит?
Проверил… В общем имя вполне логичное… гхм… Возвращает тупо i, а совсем не выделенную ячейку.
Слушай, richel, когда пытаешься возвратить свои же переменные через переменные ворда и все при этом работает, как надо!!! Это уже говорит только об одном пора отдохнуть!!!
Хотя если ты называешь выделенной строку с которой сейчас работаешь, то все логично. Просто этот роуиндекс тебе и не нужен — твоя переменная i — это и есть роуиндекс
Формулировка задачи:
Здравствуйте, таблицы Ворда
Подскажите как по аналогии узнать номер строки в таблице, в документе Ворда, где расположен курсор, даже если таблица имеет ячейки, объединённые по вертикали, пока делаю, так:
но получаю: ошибка 5991 отсутствует доступ к отдельным строкам, поскольку таблица имеет ячейки, объединённые по вертикали
Спасибо
и ещё как узнать номер ячейки в таблице Ворда, где находится курсор?
неужели без цикла никак нельзя узнать?
что хотел — решил
увы в другом месте прорвало, вопрос актуален
как узнать номер ячейки в таблице Ворда, где находится курсор?
как узнать количество ячеек в строке таблицы Ворда, и в случае когда таблица имеет объединённые ячейки по вертикали?
Код к задаче: «Узнать номер строки в таблице Ворда, где расположен курсор»
textual
If Selection.Cells(1).Next Is Nothing Then MsgBox "Конец таблицы"
Полезно ли:
15 голосов , оценка 4.000 из 5
- lina
- Начинающий
- Сообщения: 14
- Зарегистрирован: 11.06.2004 (Пт) 13:10
номер последней строки в таблице WORD
Имеется таблица в WORDе. Необходимо определить номер последней строки этой таблицы.
- GSerg
- Шаман
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 19.10.2004 (Вт) 10:06
table.rows.count???
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
- lina
- Начинающий
- Сообщения: 14
- Зарегистрирован: 11.06.2004 (Пт) 13:10
lina » 19.10.2004 (Вт) 15:16
Не получается, ругается Object reguired
- GSerg
- Шаман
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 19.10.2004 (Вт) 15:38
Ну так нужно же указать, какую таблицу…
Например, tables(1).rows.count…
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
- lina
- Начинающий
- Сообщения: 14
- Зарегистрирован: 11.06.2004 (Пт) 13:10
lina » 20.10.2004 (Ср) 8:23
Спасибо Шаман. Я сама после двух месяцев ничегонеделания не знаю чего хочу. У меня раньше в программе уже определялось количество строк, поэтому программа и ругалась.
Вернуться в VBA
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1