Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2014, 11:11   #1
Foo_fighter
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 12
По умолчанию Удалить вначале до определенного слова

Добрый день.

Помогите пожалуйста с задачкой:
надо удалить весь текст с начальной, верхней точки документа до слова "Приложение"

Не понял как слепить макрорекодер и встать курсором в начало документа.
Foo_fighter вне форума Ответить с цитированием
Старый 09.04.2014, 12:21   #2
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Код:
Sub ww140409_1210()
'
'
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "*Приложение"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 10.04.2014, 14:43   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

shanemac51! Replace:=wdReplaceAll — лишнее, не так ли?

Как и 4 флажка
Код:
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
Я понимаю, что так учит нас макрорекордер, но ведь и осмыслить не грех!

Кроме того, "Приложение" (1-е вхождение) удалять не надо. Отредактируем?
Sasha_Smirnov вне форума Ответить с цитированием
Старый 10.04.2014, 15:15   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

слово Приложение может быть и в тексте,
так что задание достаточно некорректно
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 10.04.2014, 21:03   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Но насчёт созвучных вхождений (.MatchSoundsLike = False) я бы убрал.

И потом: идя до, например, магазина — разве мы идём до последнего?!

Последний раз редактировалось Sasha_Smirnov; 11.04.2014 в 01:19.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 16.04.2014, 08:37   #6
Foo_fighter
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 12
По умолчанию

Спасибо за ответы.
Все значения с False я удалил. И действительно слова "Приложение №" необходимо оставить, я их в Replace поместил, но наверное можно и отнять количество символов.
А вопрос вот какой: как можно данную операцию проводить только для первого вхождения?
Foo_fighter вне форума Ответить с цитированием
Старый 17.04.2014, 03:40   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Да просто убрать
Цитата:
Сообщение от shanemac51 Посмотреть сообщение
Код:
Replace:=wdReplaceAll
Это будет соответствовать кнопке Заменить (вместо предложенной shanemac51 Заменить всё).
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.04.2014, 10:53   #8
Foo_fighter
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Да просто убрать


Это будет соответствовать кнопке Заменить (вместо предложенной shanemac51 Заменить всё).
Хммм, вот обрабатывающий макрос, который проставляет нумерацию, но вот шляпа, если я убираю кусок кода и оставляю только:

Selection.Find.Execute
у меня не нумерует... Со значением нумерует во всех найденных местах.


Sub ПронумероватьЧерезСловоПриложение()
N = N + 1
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFor matting
With Selection.Find
.Text = "Приложение № "
.Replacement.Text = "Приложение № " & CStr(N)
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute
End Sub
Foo_fighter вне форума Ответить с цитированием
Старый 21.04.2014, 11:16   #9
Foo_fighter
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 12
По умолчанию

Причем вот какая особенность. В ворде захожу в поиск\замена
в поиск: Приложение №
Замена: любое значение
Жмакаю заменить - происходит выделение слов Приложение №, но нет замены, другими словами, работает как найти.
Странно все это.
Foo_fighter вне форума Ответить с цитированием
Старый 21.04.2014, 11:52   #10
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Foo_fighter, можно без макроса.
1. Зайдите в Абзац - Нумерация и создайте новый формат номера, у которого "Приложение №" является частью номера (рис. 1).
2. К какому-нибудь абзацу примените эту нумерацию и создайте новый стиль на основе этого абзаца (рис. 2).
3. Поиск-замена "Приложение №" на пусто с применением стиля (рис. 3).
Теперь если Вы применяете этот стиль к какому-нибудь абзацу, нумерация меняется автоматически по всему документу.
Изображения
Тип файла: gif Приложение1.gif (5.2 Кб, 61 просмотров)
Тип файла: gif Приложение2.gif (3.9 Кб, 63 просмотров)
Тип файла: gif Приложение3.gif (10.8 Кб, 63 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст, в котором слова отделяются друг от друга пробелами, удалить из текста все повторно встречающиеся слова Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 1 16.12.2011 11:03
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47
Как удалить текст до слова, потом от слова ? littlecoder Общие вопросы Delphi 7 29.12.2008 00:57