Excel - Makro-Fremhæv hvis forskel> eller <2

  • Problem
  • Opløsning
  • Bemærk

Problem

Jeg har brug for hjælp til at skrive en regnskabsmæssig Excel-makro, jeg arbejder på. Det ser ud til, at alt fungerer fint, bortset fra en del, jeg har brug for hjælp til.

Jeg har 2 regneark formateret identisk, men nogle af oplysningerne skifter fra regneark 1 til regneark 2. Jeg vil oprette en makro for at gøre en check på kolonnerne "J", "M", "P", "S", "V" og "Y" for hver celle. her er et eksempel, hvad jeg ville have brug for:

-If (Worksheet1! M24-Worksheet2! M24) er større end 20 eller mindre end -20, ændrer celle baggrund Arbejdsark1! M24 lavendel

-Jeg har brug for at formlen skal gøres som en check, og overskriv ikke dataene i begge regneark

Dette betyder, at hvis M24 i regneark 1 er 200, 00 og M24 regneark 2 er 275, 00, så vil M24 i regneark 1 stadig vise som 200, 00, men det vil nu blive fremhævet lavendel.

Nogen ideer hvordan jeg kan gøre dette ?? Jeg bygger makroerne i VBA, som jeg har meget lidt erfaring med.

Opløsning

Dit valg af kolonner J, M, N osv. At dets col j + 3 er M og kol M + 3 er P osv. Det er ok

Dine faktiske data starter fra række 2, række 1 er kolonneoverskrifter

Der er intet hul i dataene i det mindste i kolonne J

men du har skrevet, at hvis forskellen mellem cellerne på de to ark eiteshr> 20 eller mindre end 20 skal den være farvet. Det betyder kun, hvis det er 20, det er ikke farvet. ER DETTE LOGIC OK. Tjek venligst igen

På denne forudsætning er makroen angivet nedenfor. test det og send kommentarer tilbage.

Hvis der er en fejl eller fejl, skal fejlen tydeliggøres. Hvis makroen stopper linjen, hvor den stopper og fejlmeddelelsen.

den anden makro undo fjerner farvningen ;. Jeg har brugt farve numbe som r 3 for rød. Hvis du insisterer på lavendel, skal du finde ud af farvenummeret, for jeg kan misforstå hvad du mener med lavendel. i en tom celle

farve cellen i lavendel. Antag, at cellen er E13, så gå til vb editor øjeblikkelig vindue og type:

? interval ( "E13"). interior.colorindex

og hold markøren i slutningen af ​​denne linje og tryk Enter-tasten, og du får farvenummeret. brug det i makroen.

De to makroer er:

 Sub-test () Dim-kol1 Som heltal, col2 Som heltal, col As Integer, rrow Som integer Dim sidste som Integer col1 = Range ("J1"). Kolonne col2 = Område ("Y1"). Kolonne lastrow = Regneark ") .Range (" J2 "). Slut (xlDown) .Row 'MsgBox lastrow Worksheets (" sheet1 "). Cells.Interior.ColorIndex = xlNone For col = col1 Til col2 Trin 3 For rrow = 2 Til sidst' MsgBox Cells (1, kol) .Address 'MsgBox rrow Hvis Worksheets ("sheet1"). Celler (rrow, col) - Worksheets ("sheet2"). Celler (rrow, col)> 20 eller _ regneark ("ark2"). (rrow, col) - Regneark ("ark2"). Celler (rrow, col) <20 Derefter Arbejdsark ("ark1"). Celler (rrow, col) .Interior.ColorIndex = 3 Afslut hvis næste næste ende 

 Sub undo () Worksheets ("sheet1"). Cells.Interior.ColorIndex = xlNone End Sub 

Bemærk

Tak til venkat1926 for dette tip på forummet.

Forrige Artikel Næste Artikel

Top Tips