Репаинтинг целл користећи екцел ВБА

Питање

Пишем код у Екцел ВБА за генерирање репорт.И сам потпуно нови у ВБА.Хере је мој код

 Привате Суб ЦоммандБуттон1_Цлицк () Дим а1 Ас Интегер Дим д1 Ас Интегер Дим р1 Ас Интегер а1 = Схеет1.Целлс (2, 3) д1 = а1 8 р1 = а1 Мод 8 Ако д1> = 5 Тада Схеет1.Целлс.Ранге ("А20") : Е20 "). Интериор.Цолор = вбБлацк Елсе За цнт = 1 до д1 Схеет1.Целлс (20, цнт) .Интериор.Цолор = вбБлацк Нект цнт Ако р1 0 Тада Схеет1.Целлс (20, цнт) .Интериор.Цолор = вбБлацк Схеет1.Целлс (20, цнт) .Фонт.Цолор = вбВхите Схеет1.Целлс (20, цнт) = (8 - р1) Енд Иф Енд Иф Енд Суб 

Основна идеја је да се ћелије боје након што се кликне на командно дугме на основу вредности у Ћелији (2, 3). Кликови се обоје на основу вишекратника од 8. Проблем са којим се суочавам је да ћелије задрже трајно боју.

На пример, на основу вредности у Ћелијама (2, 3) ако се 5 ћелија обоје, оне остају трајно. Када променим вредност у ћелијама (2, 3) и кликнем на командно дугме, не обрађује се пресликавање ћелија .. Може било тко молим водити ме у вези овог?

Решење

Пробајте ово на почетку кода. Ово ће избрисати све ћелије у радном листу које су обојене.

 Целлс.Селецт Селецтион.Интериор.ЦолорИндек = клНоне ћелије (2, 3) .Одаберите Привате Суб ЦоммандБуттон2_Цлицк () Дим а1 Ас Интегер Дим д1 Ас Интегер Дим р1 Ас Интегер Целлс.Селецт Селецтион.Интериор.ЦолорИндек = клНоне Целлс (2, 3 ) .Селецт а1 = Схеет1.Целлс (2, 3) д1 = а1 8 р1 = а1 Мод 8 Ако д1> = 5 Тада Схеет1.Целлс.Ранге ("А20: Е20"). Интериор.Цолор = вбБлацк Елсе За цнт = 1 То д1 Схеет1.Целлс (20, цнт) .Интериор.Цолор = вбБлацк Нект цнт Иф р1 0 Тада Схеет1.Целлс (20, цнт) .Интериор.Цолор = вбБлацк Схеет1.Целлс (20, цнт) .Фонт.Цолор = вбВхите Схеет1.Целлс (20, цнт) = (8 - р1) 

Белешка

Хвала Хелперу за овај савјет на форуму.

Претходни Чланак Sledeći Чланак

Топ Савети