Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как занести в коллекцию несколько выделнных листов?

248
29 августа 2008 года
Dmitry2064
590 / / 06.12.2006
У меня есть 50 листов в книге Екселя. Лист номер 5 (со своим названием) покрашен в красный цвет (например). Следующие 5 листов относятся к нему же. Я хочу выделить все эти листы (удерживая shift) и покрасить их все в цвет первого из этой "пачки". Могу ли я объявить коллекцией эти выделенные листы?
275
29 августа 2008 года
pashulka
985 / / 19.09.2004
Если нужные листы уже выделены, то изменить цвет ярлычка можно и вручную, причём это действо коснётся всех выделенных листов. Если же сие нужно осуществить программно, то :

 
Код:
With ActiveWindow.SelectedSheets
     For iCount = 2 To .Count
         .Item(iCount).Tab.Color = .Item(1).Tab.Color 'vbRed
         'в случае большого количества листов можно
         ' использовать переменную (для запоминания исходного цвета)
     Next
End With


Впрочем, изменить цвет ярлычка можно и без предварительного выделения.
17K
01 сентября 2008 года
HookEst
144 / / 27.03.2008
также работает:

 
Код:
Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Select


или по индексам:

 
Код:
Worksheets(Array(1, 2, 3)).Select
248
01 сентября 2008 года
Dmitry2064
590 / / 06.12.2006
Оч. интересно. Спасибо.
А можно еще вопрос? В продолжение темы "раскраски листов".
Захотел раскрасить листы в оттенках некторого цвета по возрастанию "густоты" краски.
Код:
I = Sheets.Count 'посчитали колво листов
incr = Int(255 / I)
For n = I To 2 Step -1
Worksheets(n).Activate
With ActiveWindow.SelectedSheets
'.Item(1).Tab.Color = RGB(incr, 0, 0)
cc = incr * n
.Item(1).Tab.Color = RGB(cc, 0, 0) '''но в этой
строке каждый лист красится
в один и тот же оттенок. Почему?
End With
Next n


Подскажите, если не трудно.
17K
01 сентября 2008 года
HookEst
144 / / 27.03.2008
все нормально красится, от черного до красного...
з/ы для работы с оьбъектами не обязательно их select:
 
Код:
I = Sheets.Count 'посчитали колво листов
incr = Int(255 / I)
For n = I To 2 Step -1
cc = incr * n
Worksheets(n).Tab.Color = RGB(cc, 0, 0)
Next n
248
01 сентября 2008 года
Dmitry2064
590 / / 06.12.2006
сек...
248
01 сентября 2008 года
Dmitry2064
590 / / 06.12.2006
Оттенки не получились (см. "кусочек экрана" в аттаче).
Может быть это проблема настроек экрана? Хотя у меня "заряжено" 32 бита отображать.
17K
01 сентября 2008 года
HookEst
144 / / 27.03.2008
да, это только в 2007 работает, в 2003 - берет ближайший цвет из палитры, так что, в <2007 - наверное, никак...
275
02 сентября 2008 года
pashulka
985 / / 19.09.2004
I = Sheets.Count 'посчитали колво листов
incr = Int(255 / I)
For n = I To 2 Step -1
cc = incr * n
Worksheets(n).Tab.Color = RGB(cc, 0, 0)
Next n

Это неправильно, т.к. смешиваются два разных семейства Sheets и Worksheets, первое содержит рабочие листы, листы диалогов, макролисты (причём двух видов), модульные листы (которые начиная с XL97 будут отображаться уже в виде стандартных модулей) и листы диаграмм, второе же содержит только рабочие листы. Т.е. если в активной рабочей книге будут наличествовать не только рабочие листы, то это приведёт к возникновению ошибки, ибо количество рабочих листов будет меньше количества листов.
248
03 сентября 2008 года
Dmitry2064
590 / / 06.12.2006
Спасибо всем.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог