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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2011, 12:31   #1
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию определение колонок / ячеек в несмежном диапазоне

привет всем))

подскажите пожалуйста, как макросом определить номера столбцов в выделенном несмежном диапазоне??
и загнать эти номера столбцов в массив

Последний раз редактировалось Bape}l{ka; 19.07.2011 в 12:38.
Bape}l{ka вне форума Ответить с цитированием
Старый 19.07.2011, 13:00   #2
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Для примера:
Код:
Sub ert()
Dim r As Range, rAr As Range, x(), i&
Dim msg$
For Each rAr In Selection.Areas
    MsgBox rAr.Address
    For Each r In rAr.Columns
        ReDim Preserve x(i)
        x(i) = r.Column: msg = msg & " " & x(i)
        i = i + 1
    Next
Next
MsgBox msg
End Sub
nilem вне форума Ответить с цитированием
Старый 19.07.2011, 13:17   #3
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

вау, круто!
правда для меня сложновато О.о, не совсем понимаю, как работает
nilem, поясните пожалуйста, если не сложно..

п.с.: понятно, что сначала выделяем отдельные Area.. а r в данном случае что? колонка?

Последний раз редактировалось Bape}l{ka; 19.07.2011 в 13:22.
Bape}l{ka вне форума Ответить с цитированием
Старый 19.07.2011, 13:50   #4
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

вроде разобралась, что там к чему
в итоге, вот так мы смотрим номера строк
Код:
Sub DefinitionSelectionRows()
'определяет в несмежном диапазоне по выделению № строк и загоняет их в массив
Dim r As Range, rArea As Range, ArrayRows(), i&
Dim msg$    
For Each rArea In Selection.Areas
    MsgBox rArea.Address     'выводит адреса несмежных диапазонов
    For Each r In rArea.Rows
        ReDim Preserve ArrayRows(i)
        ArrayRows(i) = r.Row: msg = msg & " " & ArrayRows(i)
        i = i + 1
    Next
Next
MsgBox msg
End Sub
Bape}l{ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение крайних ячеек диапазона Айвенго Microsoft Office Excel 6 19.04.2011 19:02
Найти значение в диапазоне ячеек Luchiya Microsoft Office Excel 2 01.09.2010 14:09
Вставить и удалить значения, в диапазоне ячеек. segail Microsoft Office Excel 9 02.07.2010 11:20
Вставка группы пустых ячеек в выбранном диапазоне slba Microsoft Office Excel 4 30.10.2009 08:48
Определение времени в диапазоне Mouse123 Общие вопросы Delphi 9 12.05.2009 13:59