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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2015, 16:15   #1
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию как перевести диапазон значений в режим ПРОПИСНых букв без цикла?

как перевести диапазон значений в режим ПРОПИСНых букв без цикла
Решение http://stackoverflow.com/questions/1...-all-the-cells
дает результат
Цитата:
#ИМЯ?
по всем ячейкам
Код:
Sub a()
Dim rng As Range
Set rng = Range("a18:a20")
rng = [index(upper(rng),)]
'rng = [index(upcase(rng),)]
'rng = [Application.Worksheetfunction.Index(Application.WorksheetFunction.upper(rng),)]
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 17.12.2015, 18:14   #2
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Если rng может меняться, то, как вариант :

Код:
rng = Evaluate("INDEX(UPPER(" & rng.Address(, , , True) & "),)")
'rng = rng.Worksheet.Evaluate("INDEX(UPPER(" & rng.Address & "),)")
pashulka вне форума Ответить с цитированием
Старый 17.12.2015, 18:25   #3
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

можно только так:
Код:
Sub a()
Dim rng As Range
Set rng = Range("B6:B9")
rng = [index(upper(B6:B9),)]
End Sub
или так:
Код:
Sub a()
Range("B6:B9") = [index(upper(B6:B9),)]
End Sub
или так:
Код:
Sub a()
[B6:B9] = [index(upper(B6:B9),)]
End Sub
Дело в том, что значения в
Код:
[index(upper(B6:B9),)]
не передаются, vba считывает эти данные как строку, следовательно не какие переменные, значения и функции не получится вставить.
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 17.12.2015, 18:27   #4
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

ну или как предложил pashulka
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 17.12.2015, 19:18   #5
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Если очень хочется использовать []

Код:
Private Sub Test()
    Dim rng As Range
    Set rng = Range("A18:A20")
    rng.Name = "LowerToUpper"
    rng = [INDEX(UPPER(LowerToUpper),)]
    'Names("LowerToUpper").Delete
End Sub
pashulka вне форума Ответить с цитированием
Старый 17.12.2015, 20:04   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

вот так будет работать с любым стилем ссылок - А1 или R1C1
Код:
Sub a()
  With Range("a18:a20")
    .Value = Evaluate("INDEX(UPPER(" & .Address(, , Application.ReferenceStyle) & "),)")
  End With
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 17.12.2015, 20:46   #7
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Вот так будет работать с любым рабочим листом - даже неактивным

Код:
Sub a2()
  With Worksheets("Лист3").Range("a18:a20")
    .Value = Evaluate("INDEX(UPPER(" & .Address(, , Application.ReferenceStyle, True) & "),)")
    '.Value = .Parent.Evaluate("INDEX(UPPER(" & .Address(, , Application.ReferenceStyle) & "),)")
  End With
End Sub
pashulka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
случайной последовательности прописных букв MjRed Общие вопросы по Java, Java SE, Kotlin 1 11.01.2011 17:23
Преобразования прописных букв в строчные Clockgen Microsoft Office Excel 5 10.12.2010 12:46
C++ Замена прописных букв на строчные Eddie Помощь студентам 0 04.06.2009 16:52
Удаление всех прописных букв из ячейки samlay Microsoft Office Excel 4 07.11.2007 20:03