Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/даны три слова. первое и третье слово записать прописными - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » даны три слова. первое и третье слово записать прописными (Формулы)
даны три слова. первое и третье слово записать прописными
VBA. Работа со строками Дата: Суббота, 19.10.2013, 11:04 | Сообщение № 1
Группа: Гости
я набрала код, но он все слова в строке выводит прописными. помогите пожалуйста, как именно определить позицию 1 и 3 слова в строке
[vba]
Код
Private Sub CommandButton1_Click()
a = Text1.Text
n = Len(a)
ReDim c(n)
Text2.Text = Strings.LCase(a)

End Sub
[/vba]
 
Ответить
Сообщениея набрала код, но он все слова в строке выводит прописными. помогите пожалуйста, как именно определить позицию 1 и 3 слова в строке
[vba]
Код
Private Sub CommandButton1_Click()
a = Text1.Text
n = Len(a)
ReDim c(n)
Text2.Text = Strings.LCase(a)

End Sub
[/vba]

Автор - VBA. Работа со строками
Дата добавления - 19.10.2013 в 11:04
Poltava Дата: Суббота, 19.10.2013, 13:05 | Сообщение № 2
Группа: Друзья
Ранг: Форумчанин
Сообщений: 232
Репутация: 50 ±
Замечаний: 0% ±

Цитата
я набрала код
Невижу файла с кодом
Цитата
все слова в строке выводит прописными
читаем справку по LCase
Цитата
как именно определить позицию 1 и 3
Вот неплохая ссылка должна помочь ТЫЦ


Сообщение отредактировал Poltava - Суббота, 19.10.2013, 13:56
 
Ответить
Сообщение
Цитата
я набрала код
Невижу файла с кодом
Цитата
все слова в строке выводит прописными
читаем справку по LCase
Цитата
как именно определить позицию 1 и 3
Вот неплохая ссылка должна помочь ТЫЦ

Автор - Poltava
Дата добавления - 19.10.2013 в 13:05
Alex_ST Дата: Воскресенье, 20.10.2013, 19:09 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Вот неплохая ссылка должна помочь
hands



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Вот неплохая ссылка должна помочь
hands

Автор - Alex_ST
Дата добавления - 20.10.2013 в 19:09
SkyPro Дата: Воскресенье, 20.10.2013, 19:32 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Попробуйте так:[vba]
Код
Private Sub CommandButton1_Click()
Dim a$
a = Text1.Text

n = Len(a)
ReDim c(n)

fst = Application.WorksheetFunction.Find(" ", a, 1) 'тут можно использовать InStr, но у меня чет не получилось =\
thd = Application.WorksheetFunction.Find(" ", a, fst)

a = UCase(Left(a, fst - 1)) & LCase(Mid(a, fst, thd)) & UCase(Right(a, Len(a) - thd - fst + 1))
Text2.Text = a

End Sub
[/vba]

[offtop] Poltava, отличная ссылка!


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Воскресенье, 20.10.2013, 19:50
 
Ответить
СообщениеПопробуйте так:[vba]
Код
Private Sub CommandButton1_Click()
Dim a$
a = Text1.Text

n = Len(a)
ReDim c(n)

fst = Application.WorksheetFunction.Find(" ", a, 1) 'тут можно использовать InStr, но у меня чет не получилось =\
thd = Application.WorksheetFunction.Find(" ", a, fst)

a = UCase(Left(a, fst - 1)) & LCase(Mid(a, fst, thd)) & UCase(Right(a, Len(a) - thd - fst + 1))
Text2.Text = a

End Sub
[/vba]

[offtop] Poltava, отличная ссылка!

Автор - SkyPro
Дата добавления - 20.10.2013 в 19:32
AndreTM Дата: Воскресенье, 20.10.2013, 20:45 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Если количество пробелов между словами сохранять непринципиально, можно так:
[vba]
Код
Dim ar
ar = Split(Text1.Text)
ar(0) = UCase(ar(0))
ar(2) = UCase(ar(2))
Text2.Text = Join(ar)
[/vba]


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Понедельник, 21.10.2013, 12:58
 
Ответить
СообщениеЕсли количество пробелов между словами сохранять непринципиально, можно так:
[vba]
Код
Dim ar
ar = Split(Text1.Text)
ar(0) = UCase(ar(0))
ar(2) = UCase(ar(2))
Text2.Text = Join(ar)
[/vba]

Автор - AndreTM
Дата добавления - 20.10.2013 в 20:45
Скрипт Дата: Понедельник, 21.10.2013, 10:38 | Сообщение № 6
Группа: Проверенные
Ранг: Участник
Сообщений: 61
Репутация: 25 ±
Замечаний: 0% ±

Excel 2013
AndreTM, а пробелы никуда не исчезнут. Или приведите пример, что пробелы исчезнут.
 
Ответить
СообщениеAndreTM, а пробелы никуда не исчезнут. Или приведите пример, что пробелы исчезнут.

Автор - Скрипт
Дата добавления - 21.10.2013 в 10:38
AndreTM Дата: Понедельник, 21.10.2013, 12:48 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Скрипт, а, да, Split() же только первый разделитель вырежет, а остальные - воспримет как "слова".
Ну, тогда уточним - "если между словами - по одному пробелу, то ..."


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Понедельник, 21.10.2013, 12:58
 
Ответить
Сообщение Скрипт, а, да, Split() же только первый разделитель вырежет, а остальные - воспримет как "слова".
Ну, тогда уточним - "если между словами - по одному пробелу, то ..."

Автор - AndreTM
Дата добавления - 21.10.2013 в 12:48
Скрипт Дата: Понедельник, 21.10.2013, 13:25 | Сообщение № 8
Группа: Проверенные
Ранг: Участник
Сообщений: 61
Репутация: 25 ±
Замечаний: 0% ±

Excel 2013
AndreTM, нет, пробелы не будут восприняты как слова. В массиве будут создаваться пустые элементы между двумя подрядидущими пробелами.
 
Ответить
СообщениеAndreTM, нет, пробелы не будут восприняты как слова. В массиве будут создаваться пустые элементы между двумя подрядидущими пробелами.

Автор - Скрипт
Дата добавления - 21.10.2013 в 13:25
AndreTM Дата: Понедельник, 21.10.2013, 13:42 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
В массиве будут создаваться пустые элементы между двумя подряд идущими пробелами
Я, вообще-то, брекпойнтами и LocalsWindow умею пользоваться yes

Для ТС суть будет в том, что после Join() мы соберём фразу с тем же количеством пробелов - вот только "третьим словом" в массиве будет пустой элемент... Поэтому и уточняю, что перед применением такого алгоритма надо будет удалить лишние пробелы (или быть уверенным, что лишних там нет). Ну, например, ТС ведь уверена, что в строке три слова имеются :D


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
В массиве будут создаваться пустые элементы между двумя подряд идущими пробелами
Я, вообще-то, брекпойнтами и LocalsWindow умею пользоваться yes

Для ТС суть будет в том, что после Join() мы соберём фразу с тем же количеством пробелов - вот только "третьим словом" в массиве будет пустой элемент... Поэтому и уточняю, что перед применением такого алгоритма надо будет удалить лишние пробелы (или быть уверенным, что лишних там нет). Ну, например, ТС ведь уверена, что в строке три слова имеются :D

Автор - AndreTM
Дата добавления - 21.10.2013 в 13:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » даны три слова. первое и третье слово записать прописными (Формулы)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!