Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Работа с MS Office > Изменение регистра в Excel


Автор: RockClimber 20.6.2008, 16:23
В ворде есть функция в меню "Формат" -> "Регистр". Там можно много чего сделать с регистром - инвертировать, перевести все в верхний, нижний регистр, сделать первые буквы в словах большими... А в Excel это можно использовать?

Автор: FINANSIST 23.6.2008, 08:09
1) Реализация через функции
Пример:
=строчн(QWERTY ) ; // =  "qwerty"
=прописн(qwerty) ; // =  "QWERTY "
2)Реализация програмно
Пример:
Код

dim str,regist as string
str = "QWERTY"
regist = LCase(str)
msgbox regist
regist = UCase(regist)
msgbox regist


Автор: RockClimber 23.6.2008, 10:44
Программно и через функции я и сам умею... Но ведь лень! smile  Надо добавить еще столбец, вписать функцию, заменить ее на значение потом, удалить исходный столбец... А в ворде выделил диапазон, 3 раза кликнул мышкой - и готово...

Автор: ТоляМБА 23.6.2008, 11:12
Цитата(RockClimber @  23.6.2008,  13:44 Найти цитируемый пост)
Надо добавить еще столбец, вписать функцию, заменить ее на значение потом, удалить исходный столбец...
А если один раз написать на VBA и повесить код на кнопку меню? Столбцы вообще лишние не понадобятся.
Цитата(RockClimber @  23.6.2008,  13:44 Найти цитируемый пост)
 А в ворде выделил диапазон
Excel перестал работать с выделенными диапазонами?  smile 

Автор: RockClimber 23.6.2008, 15:16
Цитата(ТоляМБА @  23.6.2008,  11:12 Найти цитируемый пост)
Excel перестал работать с выделенными диапазонами?

Эксель даже не начинал работать с регистрами, как ворд, я имел ввиду smile 

Автор: ТоляМБА 24.6.2008, 08:07
Код

Option Explicit

Private Sub LowerBtn_Click()
Dim L As Long
Dim I As Long
L = Selection.Count
For I = 1 To L
    Selection.Item(I) = LCase(Selection.Item(I))
Next I
End Sub

Private Sub UpperBtn_Click()
Dim L As Long
Dim I As Long
L = Selection.Count
For I = 1 To L
    Selection.Item(I) = UCase(Selection.Item(I))
Next I
End Sub


Вместо кнопок вешай на панель инструментов.

Автор: RockClimber 24.6.2008, 08:12
Не, я сделаю формочку как в ворде, с выбором, в какой регистр переводить выделенные ячейки, и с таким же функционалом.   Потом выложу. Когда будет не лень... smile

Автор: FINANSIST 24.6.2008, 12:35
Если уж совсем лень, то есть такая все известная программа Punto Switcer, где можно автоматически менять не только раскладки но и регистры независио от категории активного приложения smile 

Автор: Staruha 25.6.2008, 12:12
Вот еще тут посмотри
http://forum.vingrad.ru/forum/topic-26276.html

Автор: RockClimber 26.6.2008, 09:42
Цитата(FINANSIST @  24.6.2008,  12:35 Найти цитируемый пост)
Если уж совсем лень, то есть такая все известная программа Punto Switcer, где можно автоматически менять не только раскладки но и регистры независио от категории активного приложения

Punto Switcher'ом пользуюсь третий год, но про эту функцию не знал  smile 
Посмотрел сейчас справку - не совсем то, что надо. Мне надо производить преобразование "Иванов Иван Иванович" <-> "ИВАНОВ ИВАН ИВАНОВИЧ". Вот Ворд такие вещи делает очень хорошо...

Автор: FINANSIST 27.6.2008, 08:19
Цитата(RockClimber @  26.6.2008,  09:42 Найти цитируемый пост)
Посмотрел сейчас справку - не совсем то, что надо. Мне надо производить преобразование "Иванов Иван Иванович" <-> "ИВАНОВ ИВАН ИВАНОВИЧ". Вот Ворд такие вещи делает очень хорошо... 

Всё там работает как надо (Напомню тема про регистры Эксель):
Шаг1. 
Набиваем в ячейке " иванов иван иванович"
Шаг2.
Выходим из ячейки нажимая не просто Enter иначе сместимся на ячейку ниже, а Ctrl+Enter , что бы остаться именно в этой ячейке
Шаг3. Alt+Break
Punto Switcher все слово преобразует в "ИВАНОВ ИВАН ИВАНОВИЧ" 
По моему нормально smile 

Автор: RockClimber 27.6.2008, 08:49
Цитата(FINANSIST @  27.6.2008,  08:19 Найти цитируемый пост)
Шаг1. Набиваем в ячейке " иванов иван иванович"

Вот если бы все такие предусмотрительные были... А у меня есть файл, в котором уже набрано "Иванов Иван Иванович". И таких там несколько сотен... smile 

Автор: FINANSIST 27.6.2008, 11:08
Ну тогда:
Цитата(ТоляМБА @  24.6.2008,  08:07 Найти цитируемый пост)
Option Explicit

Private Sub LowerBtn_Click()
Dim L As Long
Dim I As Long
L = Selection.Count
For I = 1 To L
    Selection.Item(I) = LCase(Selection.Item(I))
Next I
End Sub

Private Sub UpperBtn_Click()
Dim L As Long
Dim I As Long
L = Selection.Count
For I = 1 To L
    Selection.Item(I) = UCase(Selection.Item(I))
Next I
End Sub

Даже не знаю, в чём проблема по теме данного топика

Автор: RockClimber 27.6.2008, 14:06
Цитата(FINANSIST @  27.6.2008,  11:08 Найти цитируемый пост)
Даже не знаю, в чём проблема по теме данного топика

Сто раз объяснял - тупо хочу такую формочку
http://ipicture.ru/
Если такой нет - сделаю сам. Потом. "А что? Язык я знаю!" (с)

Автор: FINANSIST 27.6.2008, 16:16

Цитата

Вот если бы все такие предусмотрительные были... А у меня есть файл, в котором уже набрано "Иванов Иван Иванович". И таких там несколько сотен... 


А что мешает выделить диапозон ячеек со всеми "ивановами иванами ивановичами" и нажать тот же Alt+Break?
Punto Switcher так же прекрасно работает с регистрами по уже введённой ранее информации  (я то думал, что тебе для только что введённых данных преобразование надо)

Автор: krb 8.7.2008, 00:01
У меня вопрос!!!
Есть Excel таблица с данными(информация о клиенте, даты, суммы и пр.). Нужно вытащить эти данные и поместить их Word документы. Расположение этих данных в Worde различаются.  
Как это сделать???

Автор: FINANSIST 16.7.2008, 14:39
Это делается в новом топике!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)