Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
81 / 75 / 29
Регистрация: 08.08.2013
Сообщений: 431
Записей в блоге: 1
1

Нужно разобраться с абзацами в Word (VBA)

14.01.2016, 17:15. Показов 2943. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть документ word с таким содержанием (файл во вложении):

Visual Basic
1
2
Слово1 слово2 слово3
Слово4 слово5
Хочу вывести в Debug.Print все абзацы. Использую такой код:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub q1()
 
    Dim a As Paragraph
    
    Debug.Print "Всего абзацев"; ThisDocument.Paragraphs.Count
     
    Debug.Print "---перечисление всех абзацев---"
    For Each a In ThisDocument.Paragraphs
        Debug.Print a.Range.Text
    Next
    Debug.Print "---перечисление всех абзацев---"
     
End Sub
Свойство ThisDocument.Paragraphs.Count (количество абзацев) показывает, что абзацев 2.

Но в дебаге выводиться 4 строки
---перечисление всех абзацев---
слово1 слово2 слово3

слово4 слово5

---перечисление всех абзацев---

Предполагаю, что пустые строки это символы перевода строки. Но тогда логично было бы, чтобы свойство [B]ThisDocument.Paragraphs.Count было равно 4.

Вообщем вопрос: Как в таком случае нужно правильно написать код, чтобы выводить только непустые строки? Нужно писать отдельную проверку для каждого значения?
Миниатюры
Нужно разобраться с абзацами в Word (VBA)  
Вложения
Тип файла: 7z абзацы.7z (18.6 Кб, 2 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2016, 17:15
Ответы с готовыми решениями:

Нужно на VBA добавлять в определенную позицию в word-е таблицу с текстом и отформатировать ее
Добрый день. У меня задача из 1С создать word-ский документ на основании шаблона. 1С умеет работать...

VBA-команда "не добавлять интервал между абзацами одного стиля"
MsOffise 2010 нужно программно задать стиль, в котором имеется отступ сверху-снизу и прописано:...

Не получается разобраться с VBA
Задание: Заполнить левый верхний квадрат размером N*N ячеек рабочего листа excel целыми...

Разобраться с sql запросом в vba и правильным подключением базы access - word
Добрый день. Хочу замутить кнопку в форме базы по нажатию которой будет открываться шаблон word и...

4
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
14.01.2016, 17:26 2
Лучший ответ Сообщение было отмечено sysrepos как решение

Решение

sysrepos, Debug.Print добавляет перевод строки (иначе бы Вы получили в 1 строке
--перечисление всех абзацев---слово1 слово2 слово3
). Текст абзаца включает символ перевода строки. Так что перевод строки после "строка3" - от текста абзаца, а второй подряд перевод строки - от Debug.Print.

PS файл не открывается, советую использовать более употребимые форматы (zip, rar).
1
Модератор
Эксперт MS Access
11963 / 4831 / 779
Регистрация: 07.08.2010
Сообщений: 14,151
Записей в блоге: 4
14.01.2016, 17:40 3
если лень воевать с возвратом строки пишу так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Sub q1()
 
    Dim a As Paragraph
    
    Debug.Print "Всего абзацев"; ThisDocument.Paragraphs.Count
     
    Debug.Print "---перечисление всех абзацев---"
    For Each a In ThisDocument.Paragraphs
        Debug.Print a.Range.Text;
    Next
Debug.Print
    Debug.Print "---перечисление всех абзацев---"
     
End Sub
1
81 / 75 / 29
Регистрация: 08.08.2013
Сообщений: 431
Записей в блоге: 1
14.01.2016, 18:03  [ТС] 4
понятно, спасибо.
использую тот, который стоит на работе (7z), поставил бы другой, но прав админа нет.

Добавлено через 13 минут
Цитата Сообщение от shanemac51 Посмотреть сообщение
если лень воевать с возвратом строки пишу так
вот это настоящая магия )
только после 20 минут просмотра кода понял в чем разница
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
14.01.2016, 19:54 5
sysrepos, 7Zip вполне умеет сохранять в zip
Миниатюры
Нужно разобраться с абзацами в Word (VBA)  
1
14.01.2016, 19:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2016, 19:54
Помогаю со студенческими работами здесь

Word-отчёт с заблокированными абзацами
Добрый день! Помогите, пожалуйста. Возник вопрос, можно ли в VBscript организовать word-отчёт,...

Word - отчёт с заблокированными абзацами
Добрый день! Помогите, пожалуйста. Возник вопрос, можно ли в C# организовать word-отчёт, чтобы...

Как извлекать из Word-таблицы не просто линейные строки а вместе с абзацами?
Чтобы потом вставить в Memo

Разница в скорости vba word и vba access
Вопрос: из акса идет выгрузка данных в файл ворд, далее эти данные опять же из акса форматно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru