Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Цвет фона ячейки Exel в VBA


Автор: Rain 7.4.2006, 08:18
Помогите пожалуйста ! Как в VBA определить цвет фона ячейки в ЕХеле.
Приведите пожалуйста кусок кода!

Заранее благодарен!

Автор: ~FoX~ 7.4.2006, 08:44
Код

a = Cells(1, 1).Interior.ColorIndex

Автор: Rain 9.4.2006, 07:32
Огромное спасибо!!! Я Обожаю этот форум!!!!!!!!!!!!!!

Автор: sexton 10.4.2006, 11:02
Цитата(Rain @ 7.4.2006, 08:18 Найти цитируемый пост)
Приведите пожалуйста кусок кода!

Этот код можно и самому получить.
Макрос-> Начать запись
Делаем что нужно
Остановить запись
потом Alt+f11 вызываем редактор VB, переходим в нем к папке Modules и смотрим код.

Автор: PandPmusic 12.10.2020, 10:51
Цитата(~FoX~ @ 7.4.2006,  08:44)
Код

a = Cells(1, 1).Interior.ColorIndex

Добрый день! 
А как применить Interior.ColorIndex
если переменная дата string, так что бы цвет менялся в зависимости от количества дней до значения от сегодня?
через макрос (онли!) 

Автор: Akina 12.10.2020, 21:20
PandPmusic, заведите массив соответствия между количеством дней и цветом, а потом тупо
Код

Range(..).Interior.ColorIndex = ColorsArray(DaysCount)

Автор: PandPmusic 15.10.2020, 12:18
Цитата(Akina @ 12.10.2020,  21:20)
PandPmusic, заведите массив соответствия между количеством дней и цветом, а потом тупо
Код

Range(..).Interior.ColorIndex = ColorsArray(DaysCount)

Хм....
а можно поподробней?

Автор: PandPmusic 28.10.2020, 23:03
Цитата(PandPmusic @ 15.10.2020,  12:18)
Цитата(Akina @ 12.10.2020,  21:20)
PandPmusic, заведите массив соответствия между количеством дней и цветом, а потом тупо
Код

Range(..).Interior.ColorIndex = ColorsArray(DaysCount)

Хм....
а можно поподробней?

Есть в Теме живые участники?
кто может помочь?
Пожалуйста!

Автор: Akina 29.10.2020, 08:20
Код

Dim ColorsArray(0 To 56) As Integer

Private Sub fill()
Dim i As Integer
Dim onecell As Range
For i = LBound(ColorsArray) To UBound(ColorsArray)
    ColorsArray(i) = i
Next i
For Each onecell In Range("a1:a30")
    onecell.Formula = "=TODAY() - RANDBETWEEN(0,56)"
Next onecell
End Sub

Private Sub recolor()
Dim onecell As Range
For Each onecell In Range("a1:a30")
    onecell.Interior.ColorIndex = ColorsArray(Date - onecell.Value)
Next onecell
End Sub

Суёшь в модуль листа. Сперва запускаешь fill(), потом recolor().

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)