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

Вход

Регистрация

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

 

= Мир MS Excel/Задание диапазона в VBA - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Задание диапазона в VBA (Макросы/Sub)
Задание диапазона в VBA
kudim94 Дата: Четверг, 11.05.2017, 13:24 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте! Подскажите, как через VBA правильно задать диапазон ячеек следующего типа.

[vba]
Код
Worksheets("база").Range(Cells(2, i), Cells(iLastRow, i)).Select
[/vba]

То есть, я хочу чтобы макрос выделял каждый столбец по очереди при выполнении каких-либо условий.
При выполнении моего кода вылетает ошибка "Application-defined or object-defined error"
 
Ответить
СообщениеЗдравствуйте! Подскажите, как через VBA правильно задать диапазон ячеек следующего типа.

[vba]
Код
Worksheets("база").Range(Cells(2, i), Cells(iLastRow, i)).Select
[/vba]

То есть, я хочу чтобы макрос выделял каждый столбец по очереди при выполнении каких-либо условий.
При выполнении моего кода вылетает ошибка "Application-defined or object-defined error"

Автор - kudim94
Дата добавления - 11.05.2017 в 13:24
Karataev Дата: Четверг, 11.05.2017, 13:29 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 873
Репутация: 325 ±
Замечаний: 0% ±

Excel
Ошибка потому, что если у "Range" в скобках не указывать лист, то подразумевается активный лист. А если лист "база" не является активным, то происходит ошибка.
Вариант 1
[vba]
Код
Worksheets("база").Range(Worksheets("база").Cells(2, i), Worksheets("база").Cells(iLastRow, i)).Select
[/vba]
Вариант 2
[vba]
Код
With Worksheets("база")
    .Range(.Cells(2, i), .Cells(iLastRow, i)).Select
End With
[/vba]
И еще одно замечание. Метод "Select" можно сделать только, если лист "база" будет активным. Обычно "Select" не используется и программисты обращаются к нужному диапазону без метода "Select". Просто вместо метода "Select" подставьте нужный метод, чтобы обработать фрагмент.


Сообщение отредактировал Karataev - Четверг, 11.05.2017, 13:34
 
Ответить
СообщениеОшибка потому, что если у "Range" в скобках не указывать лист, то подразумевается активный лист. А если лист "база" не является активным, то происходит ошибка.
Вариант 1
[vba]
Код
Worksheets("база").Range(Worksheets("база").Cells(2, i), Worksheets("база").Cells(iLastRow, i)).Select
[/vba]
Вариант 2
[vba]
Код
With Worksheets("база")
    .Range(.Cells(2, i), .Cells(iLastRow, i)).Select
End With
[/vba]
И еще одно замечание. Метод "Select" можно сделать только, если лист "база" будет активным. Обычно "Select" не используется и программисты обращаются к нужному диапазону без метода "Select". Просто вместо метода "Select" подставьте нужный метод, чтобы обработать фрагмент.

Автор - Karataev
Дата добавления - 11.05.2017 в 13:29
kudim94 Дата: Четверг, 11.05.2017, 13:40 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо огромное! Это помогло.
 
Ответить
СообщениеСпасибо огромное! Это помогло.

Автор - kudim94
Дата добавления - 11.05.2017 в 13:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Задание диапазона в VBA (Макросы/Sub)
Страница 1 из 11
Поиск:

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