Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 13.01.2010, 11:59   #1
zaraz
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 11
По умолчанию Замена символов в строчке на прописные

нужно создать функцию, которая изменяла каждый второй символ в строке на прописной.

честно говоря ума не приложу как это делать...
zaraz вне форума Ответить с цитированием
Старый 13.01.2010, 12:08   #2
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от zaraz Посмотреть сообщение
нужно создать функцию, которая изменяла каждый второй символ в строке на прописной.

честно говоря ума не приложу как это делать...
Они уже есть в Excelе. для ячейки A1
Код:
==ЗАМЕНИТЬ(A1;2;1;ПРОПИСН(ПСТР(A1;2;1)))
Юнлинг вне форума Ответить с цитированием
Старый 13.01.2010, 12:19   #3
zaraz
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Юнлинг Посмотреть сообщение
Они уже есть в Excelе.
мне не для себя. такое вот задание - написать функцию
zaraz вне форума Ответить с цитированием
Старый 13.01.2010, 12:40   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,164
По умолчанию

Например, так:
Код:
Function Проп2(ячейка As Range) As String
    Dim i As Integer, s As String
    For i = 1 To Len(ячейка)
        If i Mod 2 = 0 Then s = s & LCase(Mid$(ячейка, i, 1)) Else s = s & UCase(Mid$(ячейка, i, 1))
    Next: Проп2 = s
End Function
SAS888 вне форума Ответить с цитированием
Старый 13.01.2010, 12:58   #5
zaraz
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 11
По умолчанию

спасибо! не знал про функции UCase и LCase. теперь такие рода задачи смогу сам решать!
zaraz вне форума Ответить с цитированием
Старый 13.01.2010, 13:22   #6
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Например, так:
Код:
Function Проп2(ячейка As Range) As String
    Dim i As Integer, s As String
    For i = 1 To Len(ячейка)
        If i Mod 2 = 0 Then s = s & LCase(Mid$(ячейка, i, 1)) Else s = s & UCase(Mid$(ячейка, i, 1))
    Next: Проп2 = s
End Function
Небольшое замечание: SAS888 у вас нечетные символы тоже меняются, а этого в задании не было поэтому с вашего позволения подправлю:
Код:
Function Проп2(ячейка As Range) As String
    Dim i As Integer, s As String
    For i = 2 To Len(ячейка) Step 2
        s = s & UCase(Mid$(ячейка, i, 1)) 
    Next: Проп2 = s
End Function
Не бывает сложных задач, бывают сложные решения
Xpoft вне форума Ответить с цитированием
Старый 13.01.2010, 13:28   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,164
По умолчанию

Цитата:
у вас нечетные символы тоже меняются, а этого в задании не было...
Согласен. Я специально так сделал. Подождем, что по этому поводу скажет автор вопроса. По опыту знаю, что задача очень часто ставится не полностью, а иногда и не корректно.
SAS888 вне форума Ответить с цитированием
Старый 13.01.2010, 13:57   #8
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Или так:
Код:
Function Up2(s As String) As String
      Dim i As Long
      For i = 2 To Len(s) Step 2
           Mid$(s,i,1) = UCase(Mid$(s,i,1)) 
      Next i
      Up2 = s
End Function
Aent вне форума Ответить с цитированием
Старый 13.01.2010, 15:07   #9
zaraz
Пользователь
 
Регистрация: 13.01.2010
Сообщений: 11
По умолчанию

Цитата:
Небольшое замечание: SAS888 у вас нечетные символы тоже меняются,
там меняются только нечетные символы. мне же надо было чтобы изменились только четные. я поменял местами действие по then и по else местами. вот и все.

зы и задачу я поставил вроде как корректно и правильно.

всем большое спасибо за помощь!
zaraz вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена символов в строке euhenia Помощь студентам 3 30.11.2009 21:59
Замена символов в слове S@fer PHP 2 10.11.2009 10:45
Замена символов в мемо Neora Общие вопросы C/C++ 1 27.09.2009 11:18
Шифрование, замена символов. foE Общие вопросы Delphi 4 26.05.2009 12:03
Замена символов PAVEL315 Общие вопросы Delphi 1 03.02.2007 22:56