Страницы: 1
RSS
узнать код цвета ярлычка страницы
 
Добрый день.
Подскажите пожалуйста как получить цвет ярлычка активной страницы?
У меня такой код всегда возвращает  цвет 65535 независимо от цвета ярлычка. (Excel 2016).
Код
Sub sasdfasd()
Dim  b As Integer

For b = 1 To Sheets.Count
If Sheets(b).Tab.ColorIndex <> 65535 Then
MsgBox ActiveSheet.Tab.Color
End If
Next b

End Sub
файл на котором тестировал прилагаю
Спасибо
 
Присмотритесь
Sheets(b).
ActiveSheet.
 
?
Код
For b = 1 To Sheets.Count
  MsgBox Sheets(b).Tab.ColorIndex
Next b
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
ActiveSheet
поправил:
Код
Sub sasdfasd()
Dim  b As Integer

For b = 1 To Sheets.Count
Sheets(b).Select
If Sheets(b).Tab.ColorIndex <> 65535 Then
MsgBox ActiveSheet.Tab.Color
End If
Next b

End Sub
работает. Спасибо.
А если я меняю условие, то не получается отделять желтые ярлычки:
Код
Sub sasdfasd()
Dim  b As Integer

For b = 1 To Sheets.Count
Sheets(b).Select
If Sheets(b).Tab.ColorIndex = 65535 Then
MsgBox ActiveSheet.Tab.Color
End If
Next b

End Sub
т.е. макрос перебирает все странички, но с ярлыком цвета 65535 не находит. Не могу понять почему.
Изменено: john22255 - 06.05.2024 13:20:46
 
Для чего Вам это нужно? Что значит
Цитата
отделять желтые ярлычки
Для желтого цвета
ColorIndex = 6
Вот от этого и отталкивайтесь
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja: Для желтого цвета: ColorIndex = 6
не уверен, но, возможно, для разных версий Excel этот индекс может быть разным.

john22255, "жёлтый" включает в себя огромную палитру цветов. Если вы задаёте программно, то можно использовать константу vbYellow. Если руками, то посмотрите, какой код цвета получается и запомните его куда-либо.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
посмотрите
получаю цвет ярлычка таким образом:
Код
MsgBox ActiveSheet.Tab.Color

показывает 65535.
но по условию не срабатывает:
Код
If Sheets(b).Tab.ColorIndex = 65535 Then

не могу понять почему
Цитата
написал:
отделять желтые ярлычки
ну по условию работать только со страницами с желтым  ярлычком. Но почему-то  не срабатывает!
Код
If Sheets(b).Tab.ColorIndex = 65535 Then
...
 
Цитата
написал:
?
показывает 65535.

Не срабатывает, как будьто цвет другой у ярлычков.
Самое интересное что поменялся офис - стал 2016. До этого на 2007 все работало. Больше ничего не менялось.
Изменено: john22255 - 06.05.2024 17:00:51
 
Цитата
john22255:
получаю цвет ярлычка таким образом
MsgBox ActiveSheet.Tab.Color

показывает 65535.но по условию не срабатывает
If Sheets(b).Tab.ColorIndex = 65535 Then

не могу понять почему
вам бы читать для начала научиться. В #2 ещё вам указали на ошибку логики.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,
Ниже, в коде, добавлена такая строка)
Код
Sheets(b).Select
Согласие есть продукт при полном непротивлении сторон
 
Sanja, согласен, не заметил (но как же тупо написано).
john22255, прошу прощения. Однако, вам объяснять очень долго, т.к. вы азов не понимаете. Пишете .ColorIndex, а ищете .Color. Поиграйтесь с цветами (присваивайте цвет и считывайте его) и этими 2мя методами. Так хоть есть надежда, что поймёте …
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
здравствуйте
john22255 По моему у вас в коде из сообщения №1 сразу ошибки. ColorIndex это 56 цветов от 1 до 56. Color это значение цвета типа Long по моему от 0 до 16777215. ColorIndex не может быть 65536.
P.S По крайней мере так было в старых версиях. В новых может что-то изменилось.
Изменено: Евгений Смирнов - 06.05.2024 18:36:22
 
Хорошее объяснение по ColorIndex  :)  http://dmcritchie.mvps.org/excel/colors.htm
 
Цитата
написал:
в коде из сообщения №1 сразу ошибки
Цитата
написал:
Для желтого цветаColorIndex = 6
Цитата
написал:
Пишете .ColorIndex, а ищете .Color
Спасибо всем за подсказки. Cмешал в кучу Color и Colorindex. Понятно
 
Цитата
написал:
Хорошее
Спасибо, интересно
Страницы: 1
Наверх