powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / (Excel) Изменение формата ячейки при поиске и замене.
17 сообщений из 17, страница 1 из 1
(Excel) Изменение формата ячейки при поиске и замене.
    #33278031
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия OfficeXP SP3, Windows XP SP1.
Есть столбец, все ячейки которого содержат данные типа "Текстовое".
В этом столбце мне нужно поудалять все пробелы, точки, тире и т.д. оставить только числа и буквы. Так вот, когда я делаю поиск и замену (Ctrl+H), то при замене значений, когда конечный результат похож на число - ячейка автоматически становится числового типа. А если я удаляю ненужные мне символы ручками, через редактирование ячейки, то тип ячейки не изменяется.

Где грабли?

Пример для понимания:
Есть текстовая ячейка 003.225
После поиска и замены получается 3225
а должно получиться 003225
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33278491
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если все записи одного типа: ХХХ.ХХХ, то заполни любой свободный столбец формулой =ЛЕВСИМВ(A1;3) & ПРАВСИМВ(A1;3) .
Затем скопируй полученные значения и вставь в исходный столбец через "Специальная вставка - только значения".
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33278619
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, все записи имеют различный формат, и нет единого формата, которым можно описать содержимое ячеек. Нужно оставить буквы английского алфавита и цифры, остальное(точки, тире, слэши и т.д.) - удалить.
Пока что вижу решение - это загнать все в Access, там удалить и опять вернуть в Excel - но как-то криво получается.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33279099
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создайте модуль в VBA и впишите туда следующую функцию:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Function GetOnly(InputText As String) As String
    Const MyChars = "АБВГДЕЁабвгдеёжз.,\?-+"
    Dim i As Integer
    
    For i =  1  To Len(MyChars)
        InputText = Replace(InputText, Mid(MyChars, i,  1 ), "")
    Next i
    
    GetOnly = InputText
End Function


Затем используйте её по описанному во втором посте алгоритму.
Константа MyChars содержит список символов подлежащих удалению дополните её сами.
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33279205
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 100g
Спасибо, помогло. Единственное - я никогда не работал с VBA и не программировал под мелкософт, но прочел ман - подключил модуль и функцию. Строк нужно обработать 50 000 - очень сильно задумывается функция, однако.
И сразу вопрос, а регулярными выражениями VBA умеет работать?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33279307
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял вопрос
М:)
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33279348
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cИ сразу вопрос, а регулярными выражениями VBA умеет работать?
В моей книжке по VBA про это не написано. Сам я тоже не находил такого. Так что боюсь что нет, этож не перл и не пхп.
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33280225
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c 2 100g
...очень сильно задумывается функция, однако.
----------------------------------------
Артисты не приехали, приехали цыгане
Да я когда писАл уже думал об этом, просто это первое, что пришло в голову. А здачка вообще полезная. Может кто ещё напишет какое-нибудь решение.
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33280451
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение может быть в том, чтобы не использовать в константе MyChars символы, которые точно не используются, например, русские буквы. Это сильно сократит цикл.
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33280488
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторРешение может быть в том, чтобы не использовать в константе MyChars символы, которые точно не используются, например, русские буквы. Это сильно сократит цикл.
Да, я именно так и сделал, когда крутил эту функцию - русских букв у меня не было.
ИМХО, регулярными выражениями все было бы быстрее.

P.S. Для меня был удивителен сам факт, что тип ячейки может изменяться из-за поиска и замены.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33280623
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cДля меня был удивителен сам факт, что тип ячейки может изменяться из-за поиска и замены.
На самом деле, если открыть по Ctrl+H окно поиска и замены, а затем открыть дополнительное меню Параметры, там напротив полей ввода искомого и заменяемого есть такая кнопка, как формат ячейки. Но почему-то при ее включении у меня ничего не находятся :) Может у тебя заработает? Попробуй!
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33280635
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точнее. Либо не находится, либо находится, но не заменяется. Чудеса да и только!
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33280759
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да фидел я эти форматы - я так понял - это маска поиска. Если в строке "Заменить на" указать что-то, то все честно заменяется, но мне нужно удалять символы, т.е. в этой строке у меня пусто. И поиск происходит без удаления..
Да ладно, сдела функцией, как подсказал 100g и все случилось. Я в Экселе очень редко работаю. Вообщем нужно быть бдительным при замене значений, потому что может потеряться информация - вот, что нужно запомнить.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33280760
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, "Найти и заменить" работает примерно с той же скоростью. Я запускал. Так что ничего лучше ты не придумаешь.
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33281092
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача усложнилась. ;)))
Нужно еще удалять некоторые вхождения строк. Т.е. посимвольное сравнение не проходит...;)))
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33281174
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вторым параметром нужно передать массив строк, которые нужно удалить. В VBA ноль. Прошелся по ману - не нашел. Подскажите, пожалуйста: Как передать в функцию массив, размер которого заренее неизвестен?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(Excel) Изменение формата ячейки при поиске и замене.
    #33281343
Фотография 100g
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cКак передать в функцию массив, размер которого заренее неизвестен?

Не знаю Как делать Правильно, но я пользуюся типом Variant.
Код: plaintext
1.
2.
3.
Sub MyFunction(MyArray As Variant) 
     ...
End Function
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / (Excel) Изменение формата ячейки при поиске и замене.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]