powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / поиск абзацев без перебора
3 сообщений из 3, страница 1 из 1
поиск абзацев без перебора
    #37290701
alexnec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в документе word нужно отформатировать "шапки" - текст расположенный в правом верхнем углу листа. для этого производится поиск абзацев (или просто текста), имеющих большой отступ. документы могут быть большими, поэтому перебор всех абзацев для проверки их отступа может занять много времени. как обойтись без полного перебора? поиск средствами word можно вести по заданному значению отступа. эта операция выполняется быстро. может быть есть возможность искать не по точному значению отступа, а по значению из интервала? или еще вариант: можно ли получить список всех абзацных отступов и осуществлять поиск по значениям этого списка?
...
Рейтинг: 0 / 0
поиск абзацев без перебора
    #37290816
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnec,

примерно так--доли секунды на 2000 абзацев
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Sub w110602_1044()
Dim pr As Paragraph, s1, j1, j2, dt1, dt2, ss
dt1 = Timer
ss = "№№`текст"
For Each pr In Word.ActiveDocument.Paragraphs
s1 = pr.Range.Text
j1 = j1 +  1 
If Asc(s1) =  9  Or pr.FirstLineIndent <>  0  Then
j2 = j2 +  1 
Do While Asc(s1) <  32 
s1 = Mid(s1,  2 )
Loop

Debug.Print j1, Mid(s1,  1 ,  10 )
ss = ss & Chr( 13 ) & Chr( 10 ) & j1 & "` " & Mid(s1,  1 ,  20 )
End If
Next pr
dt2 = Timer
Debug.Print j1, dt2 - dt1; "c"
'''создание таблицы строк с отступом
Word.Documents.Add
Selection.Range.Text = ss
Selection.WholeStory
    Application.DefaultTableSeparator = "`"
    Selection.ConvertToTable Separator:=wdSeparateByDefaultListSeparator, _
        NumColumns:= 2 , NumRows:=j2 +  1 , AutoFitBehavior:=wdAutoFitFixed
    With Selection.Tables( 1 )
        .Style = "Сетка таблицы"
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
    End With
    Selection.Tables( 1 ).AutoFitBehavior (wdAutoFitContent)
End Sub

...
Рейтинг: 0 / 0
поиск абзацев без перебора
    #37290821
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

Код: plaintext
1.
2.
If Asc(s1) =  9  Or pr.FirstLineIndent <>  0  or mid(s1, 1 , 4 )="    " Then

...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / поиск абзацев без перебора
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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