With ActiveWindow.SelectedSheets
For iCount = 2 To .Count
.Item(iCount).Tab.Color = .Item(1).Tab.Color 'vbRed
'в случае большого количества листов можно
' использовать переменную (для запоминания исходного цвета)
Next
End With
Как занести в коллекцию несколько выделнных листов?
У меня есть 50 листов в книге Екселя. Лист номер 5 (со своим названием) покрашен в красный цвет (например). Следующие 5 листов относятся к нему же. Я хочу выделить все эти листы (удерживая shift) и покрасить их все в цвет первого из этой "пачки". Могу ли я объявить коллекцией эти выделенные листы?
Код:
Впрочем, изменить цвет ярлычка можно и без предварительного выделения.
Код:
Worksheets(Array("Sheet1", "Sheet2", "Sheet4")).Select
или по индексам:
Код:
Worksheets(Array(1, 2, 3)).Select
А можно еще вопрос? В продолжение темы "раскраски листов".
Захотел раскрасить листы в оттенках некторого цвета по возрастанию "густоты" краски.
Код:
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
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
Подскажите, если не трудно.
з/ы для работы с оьбъектами не обязательно их 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
incr = Int(255 / I)
For n = I To 2 Step -1
cc = incr * n
Worksheets(n).Tab.Color = RGB(cc, 0, 0)
Next n
сек...
Может быть это проблема настроек экрана? Хотя у меня "заряжено" 32 бита отображать.
да, это только в 2007 работает, в 2003 - берет ближайший цвет из палитры, так что, в <2007 - наверное, никак...
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 будут отображаться уже в виде стандартных модулей) и листы диаграмм, второе же содержит только рабочие листы. Т.е. если в активной рабочей книге будут наличествовать не только рабочие листы, то это приведёт к возникновению ошибки, ибо количество рабочих листов будет меньше количества листов.
Спасибо всем.