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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.07.2008, 11:45   #21
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Где-то так:
Код:
Sub ConvRange()

    Dim x As Range, i As Integer, NewF As String, Code As Integer, Cell
    Set x = Application.InputBox("Укажите ячейку (диапазон)", Type:=8)
    
    For Each Cell In x
        For i = 1 To Len(Cell.Value)
            Code = Asc(Mid(Cell.Value, i, 1))
            If Code > 47 And Code < 59 Then NewF = NewF & Mid(Cell.Value, i, 1)
        Next
        Cell.Value = NewF: NewF = ""
    Next
    x.NumberFormat = "0"
    
End Sub
При запросе ячейки, можно просто выделить требуемый диапазон и нажать OK.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 22.07.2008 в 11:50. Причина: Добавлено
SAS888 вне форума
Старый 22.07.2008, 12:16   #22
Exo
Форумчанин
 
Аватар для Exo
 
Регистрация: 25.09.2007
Сообщений: 102
По умолчанию

SAS888 снимаю шляпу, все как всегда работает безупречно

Спасибо!
Exo вне форума
Старый 22.07.2008, 14:05   #23
Exo
Форумчанин
 
Аватар для Exo
 
Регистрация: 25.09.2007
Сообщений: 102
По умолчанию

хех, не все так хорошо обработка убирает минусы, что не допустимо

можно как-то исправить?
Exo вне форума
Старый 22.07.2008, 14:11   #24
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Строку
Код:
If Code > 47 And Code < 59 Then NewF = NewF & Mid(Cell.Value, i, 1)
Замените на
Код:
If Code > 47 And Code < 59 Or Code = 45 Then NewF = NewF & Mid(Cell.Value, i, 1)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 06.11.2008, 18:09   #25
nosferaty
Новичок
Джуниор
 
Регистрация: 06.11.2008
Сообщений: 2
По умолчанию

Подскажите плиз, ваш код убирает до кучи еще и запятые, какой код у запятой? на 44 почему то не реагирует и вычищает все кроме цифр....
расширить диапазон 43-59 запятые оставляет, но получаем ругань от экселя что число сохранено в текстовом формате, и опять приходится вручную преобразовывать каждую ячейку

Последний раз редактировалось nosferaty; 06.11.2008 в 18:29.
nosferaty вне форума
Старый 07.11.2008, 05:06   #26
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Так преобразуйте результат операций со строками в число:
Код:
Sub ConvRange()

    Dim x As Range, i As Integer, NewF As String, Code As Integer, Cell
    Set x = Application.InputBox("Укажите ячейку (диапазон)", Type:=8)
    On Error Resume Next
    For Each Cell In x
        For i = 1 To Len(Cell.Value)
            Code = Asc(Mid(Cell.Value, i, 1))
            If Code > 43 And Code < 59 Then NewF = NewF & Mid(Cell.Value, i, 1)
        Next
        Cell.Value = CDbl(NewF): NewF = ""
    Next
    
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 07.11.2008, 10:40   #27
nosferaty
Новичок
Джуниор
 
Регистрация: 06.11.2008
Сообщений: 2
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Так преобразуйте результат операций со строками в число:
Спасибо
я просто не силен в VBA, а тут вот понадобилось
nosferaty вне форума
Старый 11.11.2008, 11:23   #28
vladtr
Форумчанин
 
Регистрация: 28.07.2008
Сообщений: 119
По умолчанию

Без VBA все довольно просто:
1. Копируем пробел из любой ячейки где есть он в числе
2. Выделяем диапазон ячеек в котором необходимо убрать эти пробелы
3. Используем поиск с заменой, где в качестве поиска вставляем скопированный пробел, а в заменить - ничего не ставим и делаем просто заменить все. И результат сразу же видим.
vladtr вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
убрать пробелы zetrix Microsoft Office Excel 9 10.03.2009 10:03
TField строковое поле усекается(хвостовые пробелы) lis_abu БД в Delphi 2 06.12.2007 08:30
Помогите решить. Паскаль. Работа со строками. Удалить лишние пробелы. Комильфо Помощь студентам 3 10.11.2007 21:42
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу c++ DimaG Общие вопросы C/C++ 1 01.11.2007 21:50
Правка-Найти пробелы ZORRO2005 Microsoft Office Excel 2 06.10.2007 01:47