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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 08:50   #1
SAM77777
Новичок
Джуниор
 
Регистрация: 11.04.2011
Сообщений: 2
По умолчанию как убрать лишний символ

После выгрузки данных из репортера в эксэль появились лишний символ(выглядит как пустой квадрат):
В колонках он не отображается но поиск по таблице соответственно не работает как его программно убрать?
SAM77777 вне форума Ответить с цитированием
Старый 12.04.2011, 09:03   #2
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Прогнать в цикле
Код:
cells(i,j) = Mid(cells(i,j),1,Len(cells(i,j))-1)
если "квадрат" занимает 2 символа, то
Код:
cells(i,j) = Mid(cells(i,j),1,Len(cells(i,j))-2)
пс: это при условии, что в одной ячейке находится одна строка текста
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 12.04.2011, 09:11   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно проще, без циклов и без каких-либо ограничений:
Код:
ActiveSheet.UsedRange = Application.Clean(ActiveSheet.UsedRange)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 04.07.2011, 08:54   #4
Soultaker
 
Регистрация: 04.07.2011
Сообщений: 3
По умолчанию

Ребят подскажите пожалуйста.

Есть у меня один файл в котором 30 тысяч строк
данные выглядят примерно так 000-000-000-00
а необходимо 000-000-000 00

Как убрать последнее "-"
Soultaker вне форума Ответить с цитированием
Старый 04.07.2011, 09:11   #5
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Для 30000 строк лучше макросом. Хотя, если работа разовая, можно и формулой
Код:
=ПОДСТАВИТЬ(A1;"-";" ";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"-";"")))
=ЗАМЕНИТЬ(A1;12;1;" ")
=ЛЕВСИМВ(A1;11)&" "&ПРАВСИМВ(A1;2)
vikttur вне форума Ответить с цитированием
Старый 04.07.2011, 09:25   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Макросом можно так (без защиты от ошибок, если в ячейке данные менее 12 символов, и если скорость не важна):
Код:
Sub tt()
Dim cc, tmp
Application.ScreenUpdating = False
For Each cc In [a1:a30000]
tmp = cc.Value
Mid(tmp, 12, 1) = " "
cc.Value = tmp
Next
Application.ScreenUpdating = True
End Sub
Если нужна скорость - взять в массив, обработать аналогично в массиве, выгрузить назад.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 04.07.2011, 09:28   #7
Soultaker
 
Регистрация: 04.07.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от vikttur Посмотреть сообщение
Для 30000 строк лучше макросом. Хотя, если работа разовая, можно и формулой
Код:
=ПОДСТАВИТЬ(A1;"-";" ";ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;"-";"")))
=ЗАМЕНИТЬ(A1;12;1;" ")
=ЛЕВСИМВ(A1;11)&" "&ПРАВСИМВ(A1;2)
спасибо тебе большое.

а ещё можеш подсказать

вот у меня всё тот же гадский файл с 30 тысячами строк.

есть в нём поле которое выглядит так ГГГГ/ММ/ДД
есть мелкие ошибки когда стоит ГГГГ\ММ/ДД
это легко убирается заменой.
Но как приобразовать в случае ДД/ММ/ГГГГ в ГГГГ/ММ/ДД (данные все в одной ячейки)
Soultaker вне форума Ответить с цитированием
Старый 04.07.2011, 09:39   #8
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Что, макросы не нравятся?
Если ДД/ММ/ГГГГ - это нормальная дата, а ГГГГ/ММ/ДД- текст:
Код:
=ЕСЛИ(ЕЧИСЛО(A1);A1;ДАТА(ПРАВСИМВ(A1;2);ПСТР(A1;4;2);ЛЕВСИМВ(A1;4)))
vikttur вне форума Ответить с цитированием
Старый 04.07.2011, 09:56   #9
Soultaker
 
Регистрация: 04.07.2011
Сообщений: 3
По умолчанию

хм пишет #ЗНАЧ
Soultaker вне форума Ответить с цитированием
Старый 04.07.2011, 10:38   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

если там даты можно просто задать формат для столбца формат ГГГГ/ММ/ДД
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как наиболее выгодно использовать лишний (второй) компьютер babitch Свободное общение 24 26.02.2011 23:49
Как убрать лишний Enter? Diego__ Microsoft Office Word 0 25.02.2010 18:14
Убрать символ в конце строки Shouldercannon Общие вопросы Delphi 10 09.01.2010 12:05
Строка+символ. как? forsaken66 Общие вопросы C/C++ 5 30.11.2009 22:04