Premaľovanie buniek pomocou programu Excel VBA

Problém

Píšem kód v programe Excel VBA na vytvorenie správy. Som úplne nový VBA. Tu je môj kód

 Private Sub CommandButton1_Click () Dim a1 As Integer Dim d1 Ako celé číslo Dim r1 As Integer a1 = Sheet1.Cells (2, 3) d1 = a1 8 r1 = a1 Mod 8 Ak d1> = 5 Potom Sheet1.Cells.Range ("A20") : E20 "). Interior.Color = vbBlack Else Pre cnt = 1 až d1 Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Nasledujúci cnt Ak r1 0 Potom Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Sheet1.Cells (20, cnt) .Font.Color = vbWhite Sheet1.Cells (20, cnt) = (8 - r1) End If End If End Sub 

Základnou myšlienkou je zafarbiť bunky po kliknutí na príkazové tlačidlo na základe hodnoty v bunkách (2, 3). Bunky sa zafarbia na základe násobkov 8. Problém, ktorému čelím, spočíva v tom, že bunky si trvalo zachovávajú farbu.

Napríklad na základe hodnoty v bunkách (2, 3), ak sa 5 buniek zbarví, zostanú tam natrvalo. Keď zmením hodnotu v bunkách (2, 3) a kliknete na príkazové tlačidlo, prekreslenie buniek sa neuskutoční. Môže mi niekto, prosím, v tejto súvislosti viesť?

Riešenie

Skúste to na začiatku kódu. Tým sa odstránia všetky bunky v pracovnom hárku, ktoré sú farebné.

 Cells.Select Selection.Interior.ColorIndex = xlNone Bunky (2, 3) .Vyberte Private Sub CommandButton2_Click () Dim a1 ako celé číslo Dim d1 ako celé číslo Dim r1 ako celé číslo bunky Vyberte Select.Interior.ColorIndex = xlNone buniek (2, 3 Vyberte si a1 = Sheet1.Cells (2, 3) d1 = a1 8 r1 = a1 Mod 8 Ak d1> = 5 Potom Sheet1.Cells.Range ("A20: E20") Interior.Color = vbBlack Else Pre cnt = 1 až d1 Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Ďalej cnt Ak r1 0 Potom Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Sheet1.Cells (20, cnt) .Font.Color = vbWhite Sheet1.Cells (20, cnt) = (8 - r1) End If End If End Sub 

Poznámka

Ďakujeme Helperovi za tento tip na fóre.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy