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

Слетает форматирование текста при выполнение макроса в Ворде

01.12.2011, 14:08. Показов 2773. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Код такой (корявенький конечно...)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub txt()
x = ActiveDocument.Paragraphs.Count
For i = 2 To x
    With ActiveDocument.Paragraphs(i).Range
        s = .Text
        t = Right(s, 2)
        a = Asc(t)
        If (a = 45) Then
            .Text = Left$(s, Len(s) - 2)
            i = i - 1
            x = ActiveDocument.Paragraphs.Count
        Else
            If (a <> 46) Then
                .Text = Left$(s, Len(s) - 1)
                .Text = Right$(s, Len(s) - 1)
            i = i - 1
            x = ActiveDocument.Paragraphs.Count
            End If
        End If
    End With
Next
 
End Sub

Суть в том, что я хочу с минимальными усилиями отформатировать текст, перегнанный из журнала (колонки текста) в формате pdf в ворд. Т.е. мне надо убрать переносы слов (-) и лишние знаки абзаца, оставив знаки абзаца, если они стоят после точки.
Это всё работает нормально, но вот если в строке встречается слово выделенное жирным, то текст, переносимый в эту строку, тоже становится жирным, чего мне совсем на надобно!
Может кто подскажет, как этого избежать?!! Очень надо!
Или есть какой-нибудь более простой способ реализации такого макроса? Я просто на vba в основном для екселя пишу, а для ворда первый раз и еще не разобралась.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2011, 14:08
Ответы с готовыми решениями:

Слетает форматирование текста при печати ВПФ в MS Word
Сломала голову. Делаю простенький макет внешней печатной формы с выводом в Ворд. В загружаемом...

Форматирование текста - макросом в ворде
Добрый вечер. Помогите с макросом в программе Ворд. В документе 1.doc - много текста. нем...

Слетает форматирование при экспорте в Excel
При формировании отчета применяется некое форматирование (в части заливки некоторых ячеек). При...

Слетает форматирование при загрузке в Google Drive
Всем доброго времени суток! Была поставлена задача брать данные с полей CRM-системы и генерировать...

5
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.12.2011, 16:29 2
Цитата Сообщение от m_kareva88 Посмотреть сообщение
мне надо убрать переносы слов (-) и лишние знаки абзаца, оставив знаки абзаца, если они стоят после точки.
Без макросов это делают так:
1. Заменить все ".^p" (без кавычек) на уникальный символ, например "~" или группу символов.
2. Заменить "-^p" на пусто.
3. Заменить "^p" на пусто.
4. Заменить "~" на ".^p".

Если не подойдет, выложите кусок текста.
0
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 3
01.12.2011, 23:11  [ТС] 3
Спасибо) Я знаю, как это делать без макроса...)
Но мне надо с макросом, чтобы один раз нажать и всё "посчиталось"
0
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.12.2011, 23:38 4
Можете записать действия макрорекордером в Normal.dot и пользоваться им, не видя его (ужасный) текст ни разу

Если же хотите "допилить" свой макрос, используйте методы .InsertAfter, .InsertBefore и т.д.
1
0 / 0 / 0
Регистрация: 01.12.2011
Сообщений: 3
02.12.2011, 01:34  [ТС] 5
Спасибо
макрорекордером ни разу не пользовалась, не охота разбираться
а .InsertAfter, .InsertBefore попробую
0
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
02.12.2011, 17:50 6
Цитата Сообщение от m_kareva88 Посмотреть сообщение
макрорекордером ни разу не пользовалась
Странно. Обычно знакомство с VBA начинается с этого инструмента. И потом, это быстрый путь для составления макроса для решения задачи: можно взять за основу код, записанный рекордером и добавить циклы, условные операторы. Вот свежий пример: Как перставить + с конца предложения на начало в Wordе?
1
02.12.2011, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2011, 17:50
Помогаю со студенческими работами здесь

Выполнение макроса во время редактирования текста в ячейке
Как выполнить такой макрос? Я выделяю текст в ячейке (либо его часть), нажимаю кнопку макроса,...

Экспорт в Excel: при внесении изменений непосредственно в книге слетает форматирование
Подскажите как от траблы избавиться - Сохраняю в xls, все нормально. Но стоит открыть его икселем...

Есть ли аналог макроса AutoOpen, выполняющегося в ворде автоматически при открытии документа, в Excel?
Есть ли аналог макроса AutoOpen, выполняющегося в ворде автоматически при открытии документа, в...

Выполнение макроса при фильтре
Есть макрос, который переносит данные с одного рабочего листа на другой, при наложении фильтра...


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

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