Mätta om en cell med excel VBA

Problem

Jag skriver en kod i excel VBA för att skapa en rapport. Jag är helt ny för VBA.Här är min kod

 Privat Sub CommandButton1_Click () Dim a1 Som heltal Dim d1 Som heltal Dim r1 Som heltal a1 = Sheet1.Cells (2, 3) d1 = a1 8 r1 = a1 Mod 8 Om d1> = 5 Då Sheet1.Cells.Range ("A20 : E20 "). Interior.Color = vbBlack Else För cnt = 1 Till d1 Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Nästa cnt Om r1 0 Då Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Sheet1.Cells (20, cnt) .Font.Color = vbWhite Sheet1.Cells (20, cnt) = (8 - r1) Avsluta om slutet om slutdel 

Grundtanken är att färgceller efter att klicka på kommandoknappen baserat på värdet i Celler (2, 3). Klarer färgas baserat på multiplar av 8. Det problem som jag står inför är att cellerna håller färgen permanent.

Till exempel baserat på värdet i celler (2, 3) om 5 celler blir färgade, förblir de permanent. När jag ändrar värdet i celler (2, 3) och klickar på kommandoknappen, sker inte ommålning av celler. Kan någon vänligen vägleda mig angående detta ??

Lösning

Prova detta i början av koden. Detta kommer att rensa alla celler i det kalkylblad som är färgade.

 Cells.Select Selection.Interior.ColorIndex = xlNone Cells (2, 3) .Välj Privat Sub CommandButton2_Click () Dim a1 Som heltal Dim d1 Som heltal Dim r1 Som heltal Cells.Välj Selection.Interior.ColorIndex = xlNone Cells (2, 3 ) .Välj a1 = Sheet1.Cells (2, 3) d1 = a1 8 r1 = a1 Mod 8 Om d1> = 5 Då Sheet1.Cells.Range ("A20: E20") .Intern.Color = vbBlack Else För cnt = 1 till d1 Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Nästa cnt Om r1 0 Då Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Sheet1.Cells (20, cnt) .Font.Color = vbWhite Sheet1.Cells (20, cnt) = (8 - r1) Avsluta om slutet om slutdel 

Notera

Tack till hjälpen för detta tips på forumet.

Tidigare Artikel Nästa Artikel

Bästa Tipsen