Показать полную графическую версию : [архив] Microsoft Word 2003 и более ранние версии
Codru, А если встретится такое выражение "конец абзаца - пробел", как на скрине, перед началом слова? Тогда нужно будет переписывать макрос или создавать новый. Я просто сделал, ввёл Найти - конец абзаца, пробел и Заменить на - конец абзаца.
http://i067.radikal.ru/0810/ce/1422fc94b3d7.jpg (http://www.radikal.ru)
Drongo, необходимо создать новый, т.к. макрос удаляет больше одного пробела. В данном варианте достаточно одного простого макроса, ну а если первый знак будет разный, скорее всего, что без VBA не обойтись. Необходимо будет указать на пробел в начале строки. Вернусь домой, подумаю что можно сделать.
Codru, Да зачем такие сложности, я ж написал, сначала ищем пару пробелов и заменяем их на один, до тех пор, пока количество замен не будет равно нулю, второй этап, ищем знак абзаца и пробел и заменяем их абзацем, всё, 1 минута, максимум полторы...
Drongo , я согласен с Вами, но иногда, когда имеем дело с большими текстами, удобно иметь рядом с меню несколько кнопочек, которые работают за тебя, пока перекуриваешь.
Codru, Тогда да, если не будет трудно, можно попробовать сделать Вашу задумкуВернусь домой, подумаю что можно сделать. »Во всяком случае, это вариант, и интересен своим решением, и мне будет полезно узнать. :yes:
Я просто сделал, ввёл Найти - конец абзаца, пробел и Заменить на - конец абзаца. »
Я тоже ничего лучше не мог придумать. Вот что получилось. Оказалось легче внести изменения в код, чем играться записью макроса.
Sub DeletSp()
'Удаление пробелов в начале строки
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p^w" 'это поле "Найти"
.Replacement.Text = "^p" 'это поле "Заменить"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Кстати еще один код для удаления пробелов перед знаками препинания, например запятой и точкой:
.Text = " {1;}([\,\.)])"
.Replacement.Text = "\1"
Такая проблема может кто сталкивался. При включеной сети ворд открывается секунд 40-50, если сетку отрубить, открывается почти мгновенно. Сетевые адреса прописывал динамические и статические проблема остается. Помогите!!!
Petya V4sechkin
07-10-2008, 20:26
Serg_sm, какой-нибудь сетевой принтер подключен?
В меню Файл в списке последних открытых файлов есть из сети?
Принтер не подключен, а файлы есть. Он что пытается сетевые файлы проверить на доступность?
Petya V4sechkin
08-10-2008, 09:40
Serg_sm, не знаю, честно говоря (просто других идей не было).
ссылки из recent убрал, офис переустанавливал XP и 2003. Результат 0
Кстати Excel ведет себя аналогично
Почему-то при создании ярлыка не запускается мастер создания ярлыка, а просто создаётся ярлык без названия. А по WinWord такая штука. Есть текстовой файл. Кликаешь по нему, открывается Word, но пустой.... Чтобы открыть файл, надо пройти путь --- Файл---открыть--- указываешь на этот же файл и только тогда он запускается. Можно ли как-то поправить ситуацию., чтобы из файла сразу открывался Word с этим файлом?
Geo55, Какая версия Word'a? Потом склею с общей темой. Похожий вопрос (http://www.forum.oszone.net/post-760356-255.html) и возможно этот ответ (http://www.forum.oszone.net/post-760432-256.html) поможет.
Geo55, По ссылкам выше смотрели, пробовали? Какие результаты? у вас, Word 2003 или Word 2007
Версия Word 2002 Проверить пока возможности не было. Попробую на той неделе.
illusionmgs
12-10-2008, 13:43
Для удаления лишних пробелов лучше создать макрос. Работает прекрасно.
В открытом документе запустите макрос: меню Сервис Макрос Начать запись.
В диалоговое окно назначить допустим вместо Масros1 DeleteSpace и щелкнуть на кнопке с изображением молотка. Откроется диалоговое окно (см.рис), в котором вам следует перейти на вкладку Команды из которого необходимо перетащить на панель инструментов макрос с названием Normal.NewMacros.DeleteSpace. Можно назначить кнопки какое-нибудь подходящее изображение.
Далее закрыть окно. Должно появиться панелька (небольшая) с управляющими кнопками для окончания записи макроса:
- нажмите CTRL+H;
- в диалоговое окно «Найти и Заменить» нажмите кнопки «Больше», «Снять форматирование»;
- поставьте галочку «Подстановочные знаки» (остальные убрать);
- нажмите CTRL+А (выделение всего текста документа);
- в поле «Найти» введите пробел и следующее выражение: {2;} (это означает, что будет произведен поиск двух и более расположенных подряд вхождений того знака, который стоит перед открывающейся фигурной скобкой);
- перейдите в поле «Заменить на» и введите один пробел;
- нажмите «Заменить все».
После окончания поиска и замены закройте окно «Найти и Заменить», снимите выделение текста, нажав на клавиатуре клавишу стрелки и остановите запись макроса (нажмите на кнопку с квадратиком). »
большое спасибо!
Цитата Drongo:
Я просто сделал, ввёл Найти - конец абзаца, пробел и Заменить на - конец абзаца. »
Я тоже ничего лучше не мог придумать. Вот что получилось. Оказалось легче внести изменения в код, чем играться записью макроса.
Код:
Sub DeletSp()
'Удаление пробелов в начале строки
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p^w" 'это поле "Найти"
.Replacement.Text = "^p" 'это поле "Заменить"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Кстати еще один код для удаления пробелов перед знаками препинания, например запятой и точкой:
Код:
.Text = " {1;}([\,\.)])"
.Replacement.Text = "\1" »
скажите,а как пользоваться этими кодами?
Сервис -- Макрос -- Редактор Visual Basic
Откроется окно Visual Basic
Меню: Insert -- Module
В большом правом окне должно быть:
Private Sub Macros1 ()
-- сюда скопируйте тело макроса. Название можете изменить.
End Sub
Можете проверить его работу не выходя из редактора Visual Basic, для чего нажмите на треугольник под Debug
Чтобы вывести макрос в меню Word-a, необходимо перейти в Word и:
Меню: Сервис -- Настройка
В окне Настройка перейдите на вкладку Команды, далее в Категории перейдите в поле Макросы, справа появится ваш макрос: Normal.Module1.Macros1.
Захватывайте его мышкой и перенесите в Меню, рядом с "Справка".
В это же время в окне Настройка появятся еще две кнопки: Описание и Изменить выделенный обьект.
Нажмите Изменить выделенный обьект.
В третьей строке появившегося окна можете изменить имя макроса, например убрать Normal.Module1.. Остальное все видно и так, хотите, добавьте значок...
Drongo К сожалению, моя проблема с Word 2002 после всех попыток не только не поправилась, а даже после того, как я пытаюсь открыть файл .doc из файла, выбрасывается меню "Неверно указаны имя документа или путь к нему. Проверьте разрешение на доступ к док-ту или диску. Для поиска документа воспользуйтесь окном "Открытие документа" (c:\documents)/ После этоко я опять включил dde, но окно продолжает всплывать.
Помогите, плз, как это исправить?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.