Ципихович Эндрю 1508 / 478 / 56 Регистрация: 10.04.2009 Сообщений: 8,008 |
||||
1 |
||||
Определить номер текущего абзаца (параграфа), где стоит курсор14.10.2017, 15:11. Показов 6220. Ответов 2 Метки нет (Все метки)
здравствуйте, делаю так:
но в ответе получаю 1, хотя это не правильно, что я делаю не так? спасибо
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
14.10.2017, 15:11 |
Ответы с готовыми решениями: Как сделать, что бы в Memo1, на месте (строке) где стоит курсор, выделялась цветом строчка, где стоит печатный курсор «|»? VBA Word Определить номер параграфа в ячейке таблицы Ворд, текст, где стоит курсор ‘Debug.Print… Word. Определение текущего параграфа 2 |
Заблокирован |
||||
14.10.2017, 16:49 |
2 |
|||
…это можно прочитать так: количество абзаце в части документа от первого символа до местоположения курсора Не царское это дело —
1 |
Homarty 141 / 119 / 29 Регистрация: 12.02.2017 Сообщений: 308 |
||||
15.10.2017, 08:13 |
3 |
|||
0 |
Добрый день.
Как в VBA Word достать номера абзацов? (отмечено красным на скрине)
У меня есть код, который обрабатывает таблицы в Word’e и берёт последний абзац перед каждой таблицей. Есть необходимость достать номер тоже.
Код:
Код |
---|
Sub KPI() Dim wd As New Document Set wd = ActiveDocument tc = wd.Tables.Count ReDim mas(1 To tc, 1 To 10) For i = 1 To tc If i = 1 Then Set ps = wd.Range(0, wd.Tables(1).Range.Start - 1).Paragraphs Else Set ps = wd.Range(wd.Tables(i - 1).Range.End, wd.Tables(i).Range.Start - 1).Paragraphs End If For lp = ps.Count To 1 Step -1 If Len(ps(lp)) > 5 Then mas(i, 1) = CleanString(ps(lp)) Exit For End If Next For k = 1 To wd.Tables(i).Rows.Count mas(i, k + 1) = CleanString(wd.Tables(i).Cell(k, 2).Range) Next Next Set xl = CreateObject("Excel.Application") xl.Visible = True With xl.Workbooks.Add.Sheets(1) .Cells(1).Resize(tc, 10).Value = mas With .UsedRange .ColumnWidth = 27 .Columns(2).ColumnWidth = 72 .Columns(6).ColumnWidth = 72 .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .WrapText = True End With End With Set xl = Nothing End Sub |
Перейти к содержимому раздела
Серый форум
разработка скриптов
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
VBA/VBS: Извлечь номер абзаца.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2010-10-02 14:40:09
- pant-79
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Тема: VBA/VBS: Извлечь номер абзаца.
Полдня уже бьюсь над этой проблемой.
Как извлечь в Word номер абзаца, на котором сейчас стоит выделение (Selection то бишь)?
2 Ответ от alexii 2010-10-02 16:13:56
- alexii
- Разработчик
- Неактивен
Re: VBA/VBS: Извлечь номер абзаца.
…
With objWord
…
Set objRange = .Selection.Range
objRange.Expand wdParagraph
WScript.Echo "Начало выделения — абзац №" & CStr(.ActiveDocument.Range(0, objRange.Start).Paragraphs.Count + 1)
WScript.Echo "Конец выделения — абзац №" & CStr(.ActiveDocument.Range(0, objRange.End).Paragraphs.Count)
…
End With
…
* получаем из выделения диапазон («objRange»);
* расширяем этот диапазон (само выделение не трогаем!) до границ абзацев;
* считаем число абзацев в диапазоне [от начала документа («0») до начала «нашего» диапазона («objRange.Start»)], добавляя +1, — это номер первого абзаца в выделении;
* аналогично считаем число абзацев в диапазоне [от начала документа («0») до конца «нашего» диапазона («objRange.Start»)] — это номер последнего абзаца в выделении.
3 Ответ от pant-79 2010-10-02 19:47:44 (изменено: pant-79, 2010-10-02 20:00:57)
- pant-79
- Разработчик
- Неактивен
- Рейтинг : [0|0]
Re: VBA/VBS: Извлечь номер абзаца.
Ну, я так понял, objRange надо объявлять только в VBS?
И wdParagraph как константу тоже…
В VBA это, по-моему, проще…
Кстати, если выделение меньше абзаца, для конца выделения номер вычисляется с ошибкой почему-то.
Сообщения 3
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Word |
Get Line and Paragraph Number |
|
Ease of Use |
Intermediate |
|
Version tested with |
97 |
|
Submitted by: |
Steiner |
|
Description: |
This is a collection of three small functions that provide the line number on the current page, the abolute line number in the document, and the paragraph number in the document. |
|
Discussion: |
Sometimes you need to refer to the line number of a certain bookmark or other object. Here, we provide three methods of functionality that MS should have included, but has not. Our sample file provides messageboxes to report the location. Likely, you will not use this method, but will use this code with other code to perform your task(s). |
|
|
instructions for use |
|
|
||
How to use: |
|
|
Test the code: |
|
|
Sample File: |
Position.zip 7.78KB |
|
Approved by mdmackillop |
||
This entry has been viewed 263 times. |
||