![]() |
|
Модераторы: mihanik |
![]()
|
|
| andMegaM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
У меня следующая загвоздка.
Есть код: Columns("d:d").Select Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Т.е. я заменяю в колонке "D" два пробела на один (если где встречается). Это очень не удобно, т.к. если пробелов стоит 10, то и 10 раз нужно запускать макрос. Хотелось чтобы при запуске макроса я сам задавал с какой колонкой это нужно проделать и не 10 раз, а один. Т.е. типа следующего: Dim d As String d = InputBox("В какой колонке Вы хотите удалить пробелы?") Columns("d:d").Select Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=False Так ничего не получается. Может вообще каким-то другим образом это можно осуществить? Прошу помощи... |
|||
|
||||
| Aloha |
|
|||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 5 Всего: 165 |
andMegaM
|
|||
|
||||
| andMegaM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
БОЛЬШОЕ СПАСИБО работает. А если просто убрать все пробелы за один раз - это возможно?
|
|||
|
||||
| Aloha |
|
|||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 5 Всего: 165 |
andMegaM
|
|||
|
||||
| andMegaM |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Спасибо это класно. Наверо не совсем понятно задал вопрос, но мне хотелось бы немного другое.
Если есть какая нибудь фраза и между словами стоит 10 пробелов, то после обработки макроса (один раз) все 10 пробелов заменились на один пробел. Я думаю сели не заменой " " на " " а как нибудь в цикле пока не станет один пробел или может специальная функция есть. P. S. В VBA я новичок. |
|||
|
||||
| Aloha |
|
||||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 5 Всего: 165 |
andMegaM
Да нет, это я невнимательно читал.
|
||||
|
|||||
| andMegaM |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 20.10.2006 Репутация: нет Всего: нет |
Отлично!!! То что надо. Большое спасибо. Тему считаю закрытой. Но если кому-нибудь пригодится, то мне подсказали еще один вариант.
Dim rng As Range, rng2 As Range On Error Resume Next Set rng = Application.InputBox( _ Prompt:="Ãäå Âû õîòèòå óäàëèòü ïðîáåëû?", _ Title:="Âûáîð", Type:=8, Left:=200, Top:=-65) If Not rng Is Nothing Then For Each rng2 In rng If rng2.Value <> "" Then rng2.Value = Application.WorksheetFunction.TRIM(rng2.Value) Next End If Добавлено @ 17:20
Добавлено @ 17:23 Блин не увидел что за шрифт
|
||||
|
|||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Обязательно было это делать макросом? Если нет, то в Excel есть функция СЖПРОБЕЛЫ (или типа того, в текстовых), которая удаляет все лишние пробелы, оставляет по одному после каждого слова.
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |