Solujen uudelleenmaalaus käyttämällä VEL: tä

Ongelma

Kirjoitan koodin excel VBA: ssa, jotta voin luoda raportin. Olen täysin uusi VBA: lle

 Yksityinen alikomentoButton1_Click () Dim a1: n kokonaisluku d1: n kokonaisarvona Dim r1: n kokonaisarvona a1 = Sheet1.Cells (2, 3) d1 = a1 8 r1 = a1 Mod 8 Jos d1> = 5 Sitten Sheet1.Cells.Range ("A20 : E20 "). Interior.Color = vbBlack Elementti cnt = 1: lle d1 Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Seuraava cnt Jos r1 0 Sitten Sheet1.Cells (20, cnt). vbBlack Sheet1.Cells (20, cnt) .Font.Color = vbWhite Sheet1.Cells (20, cnt) = (8 - r1) Lopeta, jos lopetat, jos loppu 

Perusajatuksena on värittää soluja komentopainikkeen napsauttamisen jälkeen soluihin (2, 3) perustuvan arvon perusteella. Kuoret värjäytyvät 8: n kerrosten perusteella. Ongelmana on se, että solut säilyttävät värin pysyvästi.

Esimerkiksi solujen (2, 3) arvon perusteella, jos 5 solua värjäytyy, ne pysyvät siellä pysyvästi. Kun muutan arvoa soluissa (2, 3) ja napsautan komentopainiketta, solujen uudelleenmaalausta ei tapahdu .. Voiko kukaan opastaa minua tässä asiassa?

Ratkaisu

Kokeile tätä koodin alussa. Tämä tyhjentää kaikki taulukossa olevat värilliset solut.

 Cells.Select Selection.Interior.ColorIndex = xlNone Cells (2, 3). Valitse Private Sub CommandButton2_Click () Dim a1 Integer Dim d1 Integer Dim r1 Integer Cells.Select Selection.Interior.ColorIndex = xlNone Cells (2, 3 ) .Valitse a1 = Sheet1.Cells (2, 3) d1 = a1 8 r1 = a1 Mod 8 Jos d1> = 5 Sitten Sheet1.Cells.Range ("A20: E20"). Interior.Color = vbBlack Else cnt = 1 To d1 Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Seuraava cnt Jos r1 0 Sitten Sheet1.Cells (20, cnt) .Interior.Color = vbBlack Sheet1.Cells (20, cnt). vbWhite Sheet1.Cells (20, cnt) = (8 - r1) Lopeta tai lopeta, jos loppu 

Huomautus

Kiitos Helperille tästä vinkistä foorumissa.

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä