/ / VBA Excel nezmení bunku na správnu farbu - excel, vba, excel-vba

VBA Excel nezmení bunku na správnu farbu - excel, vba, excel-vba

Som nový s použitím makier VBA v programe Excel a ja sompokúšať sa zmeniť farbu pozadia bunky na základe podmienky, že iná bunka nie je prázdna. Myslel som si, že som to vyriešil, ale musím robiť niečo zlé, pretože bez ohľadu na to, akú farbu špecifikujem "Interior.Color", aby sa zmenila, zmení bunku o škaredú modrú farbu. Tu je kód:

Sub Hello()
MsgBox ("Hello, world!")

Dim shSource As Worksheet
Dim shDest As Worksheet

Set shSource = ThisWorkbook.Sheets("Box Channel Tracking")
Set shDest = ThisWorkbook.Sheets("Box Channel Schematic")

If shSource.Range("C176").Value <> "" Then
shDest.Range("E8").Interior.Color = RGB(255, 255, 255)
shDest.Range("E8").Interior.Pattern = xlSolid
Else
shDest.Range("E8").Interior.Color = Red
shDest.Range("E8").Interior.Pattern = xlSolid
End If
End Sub

odpovede:

3 pre odpoveď č. 1

Musíte použiť buď index farieb alebo príslušnú hodnotu RGB. Zmeňte prvý riadok else pobočka:

        shDest.Range("E8").Interior.Color = RGB(255, 0, 0)

Úplná vzorka kódu:

Sub Hello()
MsgBox ("Hello, world!")

Dim shSource As Worksheet
Dim shDest As Worksheet

Set shSource = ThisWorkbook.Sheets("Box Channel Tracking")
Set shDest = ThisWorkbook.Sheets("Box Channel Schematic")

If shSource.Range("C176").Value <> "" Then
shDest.Range("E8").Interior.Color = RGB(255, 255, 255)
shDest.Range("E8").Interior.Pattern = xlSolid
Else
shDest.Range("E8").Interior.Color = RGB(255, 0, 0) "<-modified
shDest.Range("E8").Interior.Pattern = xlSolid
End If
End Sub

0 pre odpoveď č. 2

Skontrolujte, či sa farba palety pre program Excel nezmenila
V závislosti od vašej verzie môžete obnoviť štandardnú paletu

v roku 2003 Nástroje> Možnosti> Farba http://support.microsoft.com/kb/288412 opisuje, ako to urobiť

Alebo v novšej verzii môže byť použitá vlastná téma, ktorá spôsobuje problémy