Excel: ustawianie koloru komórki na podstawie wartości

0

Czy można ustawić kolor komórki na podstawie ciągu szesnastkowego (np. „RRGGBB”) lub wartości liczbowej, a jeśli tak, to w jaki sposób? Mam arkusz, który konwertuje kolory przechowywane w formacie BGR na RGB. Chciałbym ustawić kolor komórki obok przekonwertowanej wartości RGB.

lordhog
źródło
1
Jaka wersja programu Excel? 2003, 2007 lub 2010?
Velociraptors
@ Mehper Myślę, że to inne pytanie.
Sux2Lose
@ Sux2Lose: Myślałem, że formatowanie warunkowe odpowiada na pytanie Lordhoga, prawda?
Mehper C. Palavuzlar,
Formatowanie warunkowe jest właściwie sposobem na to.
Sathyajith Bhat

Odpowiedzi:

3

Musisz użyć VBA, aby osiągnąć swój cel. Zmodyfikuj poniższą procedurę, która barwi tło bieżącej komórki, zgodnie z Twoimi potrzebami.

Sub ColorGrey()
    ActiveCell.Interior.Color = RGB(100, 100, 100)
End sub
Toc
źródło
Otrzymuję błąd 1004 („Błąd zdefiniowany w aplikacji lub obiekt”), gdy używam powyższego kodu.
lordhog
@lordhog, przetestowałem go w programie Excel 2003 i działał świetnie, ale prawdopodobnie możesz przejrzeć pliki pomocy 2007, aby sprawdzić, czy składnia się zmieniła. Pamiętaj, że komórka prawdopodobnie musiałaby zostać wybrana do działania ActiveCell.
Lance Roberts,
Działa również w 2007 roku. Dobra robota.
Sux2Lose
Oczywiście robię coś złego. Tworzę funkcję typu „Funkcja publiczna SetCellColor (r As Integer, g As Integer, b As Integer)” z podanym kodem, następnie dla danej komórki używam „= SetCellColor (HEX2DEC (A1), HEX2DEC (A2), HEX2DEC (A3)) ”. Otrzymam błąd 1004. Dziwne, jeśli użyję „ActiveCell.Cells.Borders.Color = RGB (r, g, b)” zamiast podanego kodu, zmieni kolor obramowania aktywnej komórki, ale nie zmienia komórki to ma równanie. Myślę, że błąd 1004 (z odczytu) wynika z braku aktywacji komórki. Szukam komórki z równaniem do zmiany koloru
lordhog,
Czy próbowałeś użyć Activesheet.Range („A1”) zamiast ActiveCell? Co się dzieje
Toc