Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Есть большие, а нужны маленькие.. / 16 сообщений из 16, страница 1 из 1
09.10.2006, 07:06:24
    #34040547
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Добрый день.
Есть в EXEL97 столбец из 25000 строк. В каждой строчке все слова, напечатанны БОЛЬШИМИ буквами, например:

ВСЕ ПИШЕМ С БОЛЬШОЙ БУКВЫ

Вопрос: Как быстро сделать следующее...

Все пишем с большой буквы

Спасибо:-).
...
Рейтинг: 0 / 0
09.10.2006, 07:16:21
    #34040552
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function ChangeStringCase(strString$) As String
    ChangeStringCase = UCase(Left(strString,  1 )) & LCase(Right(strString, Len(strString) -  1 ))
End Function

Sub Temp
    MsgBox ChangeStringCase("ВСЕ ПИШЕМ С БОЛЬШОЙ БУКВЫ")
End Sub
Такое?
...
Рейтинг: 0 / 0
09.10.2006, 09:41:41
    #34040705
dinogen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Функция ПРОПИСН
Делает все буквы в тексте прописными.

Пример использования:
=ПРОПИСН(A2) - Верхний регистр строки в ячейке A2
...
Рейтинг: 0 / 0
09.10.2006, 11:56:29
    #34041131
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function ChangeStringCase(strString$) As String
    ChangeStringCase = UCase(Left(strString,  1 )) & LCase(Right(strString, Len(strString) -  1 ))
End Function

Sub Temp
    MsgBox ChangeStringCase("ВСЕ ПИШЕМ С БОЛЬШОЙ БУКВЫ")
End Sub

Спасибо! Так быстро и легко, что зависть (белая) берет:-).
Сделал в Аксе97, работает.

А вот мой вариант, нет...

Public Function MyFunct1()
MyFunct1 = UCase(Left(strString, 1)) & LCase(Right(strString, Len(strString) - 1))
End Function

Может кто нибудь подскажет, почему?
...
Рейтинг: 0 / 0
09.10.2006, 12:04:45
    #34041161
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
вашу функцию тоже проверил, работает
...
Рейтинг: 0 / 0
09.10.2006, 12:17:10
    #34041216
dinogen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Не допонял сначала, нужно же строчные! :)

Функция СТРОЧН
Делает все буквы в тексте строчными.

Пример использования:
=СТРОЧН(A2) - Нижний регистр строки в ячейке A2
...
Рейтинг: 0 / 0
09.10.2006, 12:54:35
    #34041360
dinogen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Если в A1:
ВСЕ ПИШЕМ С БОЛЬШОЙ БУКВЫ
Нужно в A1:
Все пишем с большой буквы

то можно так

=ЛЕВСИМВ(A1)&(ПСТР(СТРОЧН(A1);2;ДЛСТР(A1)))
...
Рейтинг: 0 / 0
09.10.2006, 13:05:24
    #34041405
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
да, так тоже можно. про встроенные функции забыл
при возникновении проблемы в Excel, первое что мне приходит на ум - это программный метод, функциями особо не дружу ;-)
...
Рейтинг: 0 / 0
09.10.2006, 14:03:03
    #34041638
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
dinogenЕсли в A1:

=ЛЕВСИМВ(A1)&(ПСТР(СТРОЧН(A1);2;ДЛСТР(A1)))


Спасибо:-)..а то я в Exel понятия не имею, где можно прописать свою функцию, что б ее потом использовать.))
...
Рейтинг: 0 / 0
09.10.2006, 14:05:04
    #34041646
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
просто объявляете функцию Public и всё
...
Рейтинг: 0 / 0
09.10.2006, 15:43:50
    #34042020
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Если нужно " ВСЕ ПИШЕМ С БОЛЬШОЙ БУКВЫ", то есть функция PROPER (ПРОПНАЧ), например:

с листа
=ПРОПНАЧ(А1)

из VBA
ChangeStringCase = Application.Proper(strString)

Если нужно " ПЕРВОЕ СЛОВО ПИШЕМ С БОЛЬШОЙ БУКВЫ", то:

с листа
=ПРОПИСН(ЛЕВСИМВ(A1))&ПСТР(СТРОЧН(A1);2;256)

В любом случае, если преобразуемый текст на листе и вернется на лист, то писать функцию в VBA бессмысленно - она будет в разы медленнее формулы на листе, и при 25000 строках может практически парализовать Excel в случае полного пересчета формул. Если очень охота через VBA, то лучше так:

допустим преобразуемый текст находится в столбце А активного листа и начинается со строки 2:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub test()
    Dim rng As Range, col As Long
    col =  1 
    With ActiveSheet
        On Error GoTo ErrHand
        Set rng = .Range(.Cells( 2 , col), .Cells(.Rows.Count, col).End(xlUp))
        Application.ScreenUpdating = False
        .Columns(col +  1 ).Insert
        With rng
            .Offset(,  1 ) = "=PROPER(RC[-1])"
            .Value = .Offset(,  1 ).Value
        End With
        .Columns(col +  1 ).Delete
    End With
ErrHand:
    Application.ScreenUpdating = True
End Sub
или
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub test()
    Dim rng As Range, col As Long
    col =  1 
    With ActiveSheet
        On Error GoTo ErrHand
        Set rng = .Range(.Cells( 2 , col), .Cells(.Rows.Count, col).End(xlUp))
        Application.ScreenUpdating = False
        .Columns(col +  1 ).Insert
        With rng
            .Offset(,  1 ) = "=UPPER(LEFT(RC[-1]))&MID(LOWER(RC[-1]),2,256)"
            .Value = .Offset(,  1 ).Value
        End With
        .Columns(col +  1 ).Delete
    End With
ErrHand:
    Application.ScreenUpdating = True
End Sub


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
09.10.2006, 21:36:41
    #34042927
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
"...Если очень охота через VBA..."


Ух ты..спасибо за консультацию KL :-)..но я думаю это уже избыточно..тем более даже при формулах на листе и включенном фильтре, EXEL дико тормозит..строк в действительности не 25000, а 50000...специально посчитал))). Спасибо всем:-)
...
Рейтинг: 0 / 0
09.10.2006, 22:00:51
    #34042942
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
vad-anatolijдаже при формулах на листе и включенном фильтре, EXEL дико тормозит..строк в действительности не 25000, а 50000...специально посчитал))).

Не уверен, что понял что точно имеется ввиду:

на P4 2.8 Ghz, 1.00Gb RAM
1) в 65536 ячейках мой код занимает 70 сек
2) полный пересчет формулы в 65536 ячейках занимает 235,97 миллисек (а она не летучая и значит реально столько не займет)

Так что торможение идет от каких-то других формул.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
10.10.2006, 08:58:17
    #34043214
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
KL (XL)
на P4 2.8 Ghz, 1.00Gb RAM...



Эх...а на Cel 1100, RAM 128 Мб пробовали?;-)
...
Рейтинг: 0 / 0
10.10.2006, 10:29:34
    #34043441
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
vad-anatolijЭх...а на Cel 1100, RAM 128 Мб пробовали?;-)

Так это же практически калькулятор :-)
...
Рейтинг: 0 / 0
10.10.2006, 10:51:05
    #34043531
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть большие, а нужны маленькие..
Мое начальство очень удивилось когда узнало,что в ячейках EXEL можно ставить какие то формулы:-)...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Есть большие, а нужны маленькие.. / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]