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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2009, 10:51   #1
`Dmitry
 
Аватар для `Dmitry
 
Регистрация: 03.04.2008
Сообщений: 7
По умолчанию Убрать лишнее из ячейки.

Ситуация такая. Есть столбец:

АБВ АБВ абв а0,5
АБВ абв а45

Надо оставить только заглавные символы в ячейке. Не соображу как организовать проверку. Подскажите плиз. На форумах видел для Word
такой пример If fChar.Characters.First Like "[A-ßA-Z]" Then
Пробелы считать вроде бестолку...
`Dmitry вне форума Ответить с цитированием
Старый 24.03.2009, 12:34   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно, например, воспользоваться функцией:
Код:
Function Zamena(Cell As Range) As String

    Dim i As Integer
    For i = 1 To Len(Cell)
        Select Case Asc(Mid(Cell, i, 1))
        Case 65 To 90, 32, 192 To 223: Zamena = Zamena & Mid(Cell, i, 1)
        End Select
    Next

End Function
К сожалению, Вы не сказали, оставлять пробелы или нет. В предложенном варианте они оставляются.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 24.03.2009 в 14:05.
SAS888 вне форума Ответить с цитированием
Старый 24.03.2009, 13:06   #3
`Dmitry
 
Аватар для `Dmitry
 
Регистрация: 03.04.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Можно, например, воспользоваться функцией:
Код:
Function Zamena(Cell As Range) As String

    Dim i As Integer
    For i = 1 To Len(Cell)
        Select Case Asc(Mid(Cell, i, 1))
        Case 1 To 26, 32, 192 To 223: Zamena = Zamena & Mid(Cell, i, 1)
        End Select
    Next

End Function
К сожалению, Вы не сказали, оставлять пробелы или нет. В предложенном варианте они оставляются.
Спасибо. Попробую прикрутить. Пробелов не надо, но думаю потом Rtrim прогоню у всё будет оОК.
`Dmitry вне форума Ответить с цитированием
Старый 24.03.2009, 13:31   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Пробелов не надо
Тогда просто из строки
Код:
Case 65 To 90, 32, 192 To 223: Zamena = Zamena & Mid(Cell, i, 1)
убрать код символа пробела 32. Т.е. заменить на
Код:
Case 65 To 90, 192 To 223: Zamena = Zamena & Mid(Cell, i, 1)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 24.03.2009 в 14:05.
SAS888 вне форума Ответить с цитированием
Старый 24.03.2009, 13:38   #5
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

вот так мне кажется чуть эффективнее:

Код:
Function zam(cell As Range) As String
Dim i&, s$, sr$
s = cell
For i = 1 To Len(cell)
    sr = Mid(s, i, 1)
    If UCase(sr) = sr Then zam = zam & sr
Next
'zam = Trim(zam)'zam=application.trim(zam)
End Function
slan вне форума Ответить с цитированием
Старый 24.03.2009, 14:09   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
вот так мне кажется чуть эффективнее
Может быть, но ведь автору нужно
Цитата:
оставить только заглавные символы в ячейке
т.е. исключить все другие символы (@, #, $ ит.п.) Я исходил именно из этого.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 24.03.2009, 15:31   #7
`Dmitry
 
Аватар для `Dmitry
 
Регистрация: 03.04.2008
Сообщений: 7
По умолчанию

Подскажите ламаку как прикрутить функцию. Всю голову изломал.
к первой ячейке.
`Dmitry вне форума Ответить с цитированием
Старый 24.03.2009, 15:35   #8
`Dmitry
 
Аватар для `Dmitry
 
Регистрация: 03.04.2008
Сообщений: 7
По умолчанию

Цитата:
Сообщение от `Dmitry Посмотреть сообщение
Подскажите ламаку как прикрутить функцию. Всю голову изломал.
к первой ячейке.
\всё. извиняюсь. сделал
`Dmitry вне форума Ответить с цитированием
Старый 24.03.2009, 19:07   #9
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Может быть, но ведь автору нужно т.е. исключить все другие символы (@, #, $ ит.п.) Я исходил именно из этого.
да, согласен..

но mid() все равно лучше вычислить заранее один раз
slan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение книги Excel по названию ячейки и по пути ячейки IFRSoff Microsoft Office Excel 16 07.06.2012 16:58
Убрать символы. GreenDan Помощь студентам 3 31.08.2008 13:21
Убрать нули!!!) artemavd Общие вопросы Delphi 13 29.07.2008 09:10
Как разделить число и текст в одной ячейки на две ячейки. neboskreb Microsoft Office Excel 2 15.04.2008 19:39
Убрать из uses Маркъ Общие вопросы Delphi 3 03.02.2007 11:44