Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 4 ]
- Зарегистрирован: 09.12.2010
- Сообщений: 7
Тема: VBA: как удалить лишние пробелы
Возможно, кто-то укажет аналог WorksheetFunction.Trim Экселя в VBA Ворда (т.е. удаление всех лишних пробелов слева - права - множественных внутри текста)?
пока пользую следующую конструкцию:
SAY = Replace(Trim(SAY), " ", " ", 1, -1, 1) ' в экселе 2 строки заменить на
SAY = Replace(SAY, " ", " ", 1, -1, 1) ' SAY = Worksheetfunction.Trim(SAY)
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: VBA: как удалить лишние пробелы
В Word тоже самое:
s = " Word "
s = Trim(s) ' Результат "Word"
- Зарегистрирован: 09.12.2010
- Сообщений: 7
Re: VBA: как удалить лишние пробелы
Спасибо за Ваш ответ. Я вероятно плохо раскрыл вопрос. Повторюсь. В экселе есть 2 варианта Трима 1 - Trim() в VBA; 2 - Worksheetfunction.Trim(). Различаются тем, что 1-й отсекает пробелы слва-права (как в Вашем примере), 2-й (функция листа экселя, в рус. нотации =СЖПРОБЕЛЫ()) - обрабатывает повторы пробелов внутри текста, оставляя одинарные.
Вопрос был о наличии/отсутствии в VBA Ворда 2-го варианта функции.
Можно и цикл написать, но исходно не верилось, что в Экселе 1 оператор, а в Ворде - 6
Excel:
s = Worksheetfunction.Trim(s)
Word:
s = trmi(s)
1:
if instr(1,s," ",1) then
s = Replace(s, " ", " ", 1, -1, 1)
goto 1
endif
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
- За сообщение: 1
Re: VBA: как удалить лишние пробелы
Изначально Word использует только функции встоенные в VBA. У него нет личных функций, как у Excel. Функция СЖПРОБЕЛЫ() на самом деле это не один оператор, а процедура содержащая также кучу операторов. Что могу посоветовать.
1. Откройте редактор VBA в Word.
2. Выберете шаблон Normal.
3. Вставьте в него модуль и назовите его WordFunctions.
4. Вставьте в него макрос:
Sub Trim()
'
' Удаление пробелов
'
Selection.WholeStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = _
"([!^0032^0160])([^0032^0160])([^0032^0160]{1;})([!^0032^0160])"
.Replacement.Text = "\1\2\4"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "([!^0032^0160])([^0032^0160]{1;})([^0013])"
.Replacement.Text = "\1\3"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "([^0013])([^0032^0160]{1;})([!^0032^0160])"
.Replacement.Text = "\1\3"
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
5. Сохранитесь.
Теперь можете в своих кодах писать:
Далее в модуль WordFunctions можно будет добавлять другие функции и процедуры, а потом обращаться к ним.
Excel построен по томуже принципу, только разработчики заранее внедрили в него объект Worksheetfunction, с кучей дополнительных функций.
Сообщений [ 4 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
VBA: как удалить лишние пробелы
Любую работу можно сделать несколькими различными способами. В силах человека выбрать наиболее удобный для себя, оптимальный и рациональный. Наш сайт о Microsoft Office Word даст ответ про: как word убрать символ абзац.
Если говорить о работе с текстами: написании рефератов, дипломов, статей, редактировании различных документов и оформлении презентаций, то Microsoft Word дает массу возможностей для этого. Наш сайт о Microsoft Office Word даст ответ про: как в ворде убрать растянутость слов.
Познакомиться с ними, расширить свои познания о программе или поделиться секретами и хитростями с другими пользователями вы можете на форуме Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: шаблоны для фирменного бланка.
Здесь собрана основная информация и ответы на наиболее популярные вопросы по работе с приложением. Например, о создании макросов, о колонтитулах, удалении лишних пробелов. Наш сайт о Microsoft Office Word даст ответ про: как сделать так. чтобы фигура в тексте не съезжала в ворде.
В основных разделах можно обсудить настройки самого Ворда и способы работы с текстом в различных версиях программы. На портале о Microsoft Office Word вы узнаете про: сохранить файл ворд в другом формате?.
Подфорум «Автоматизация» предлагает освоить технику создания макросов и задания шаблонов для различных операций и функций. На портале о Microsoft Office Word вы узнаете про: как убрать сноску ворд 2010.
Здесь же на форуме можно найти готовые решения, разнообразные шаблоны, макросы для редактирования таблиц, оглавлений и многое другое. На портале о Microsoft Office Word вы узнаете про: как сканировать документы в ворд 2007.
Возможно и оставить заявку, описав свою проблему в соответствующем подразделе. Если у вас есть какие –то оригинальные идеи и решения – форум лучшее место поделиться ими с другими пользователями Ворда. На портале о Microsoft Office Word вы узнаете про: ворд как переходить на новую строку.