Excel - Macro-Evidențiați dacă diferența> sau <2

  • Problema
  • Soluţie
  • Notă

Problema

Am nevoie de ajutor pentru a scrie o macrocomandă de contabilitate la care lucrez. Se pare că totul funcționează bine, cu excepția unei părți la care am nevoie de ajutor.

Am două foi de lucru formate identic, totuși unele schimbări de informații de la foaia de lucru 1 la foaia de lucru 2. Vreau să configurez o macrocomandă pentru a verifica coloanele "J", "M", "P", "S" "V" și "Y" pentru fiecare celulă. aici este un exemplu de ce aș avea nevoie:

-If (foaia de lucru1! M24-foaia de lucru2! M24) este mai mare de 20 sau mai mică de -20, schimba fundul celulei foaia de lucru1! M24 lavanda

-Am nevoie ca formula să fie făcută ca o verificare, și nu să suprascrieți datele din foaia de lucru

Aceasta inseamna ca daca M24 in foaia de lucru 1 este 200.00, iar foaia de lucru M24 este 275.00, atunci M24 in foaia de lucru 1 va arata inca 200.00, dar acum va fi marcata lavanda.

Orice idei cum pot face asta? Construiesc macrocomenzile din VBA, cu care am foarte puțină experiență.

Soluţie

Alegerea coloanelor J, M, N etc, că col j + 3 este M și col M + 3 este P etc este ok

datele dvs. reale încep de la rândul 2, rândul 1 fiind titlurile coloanelor

Nu există niciun decalaj în date cel puțin în coloana J

dar ați scris că dacă diferența dintre celulele celor două foi eiteshr> 20 sau mai puțin de 20 ar trebui să fie colorată. Asta inseamna doar daca este 20 nu este colorata. ESTE ACEASTA LOGICA OK. verificați din nou

pe această ipoteză, macro-ul este dat mai jos. testați-l și postați înapoi comentariile.

Dacă există o eroare sau o eroare, eroarea ar trebui să fie clar elucidată. Dacă macrocomanda oprește linia în care se oprește și mesajul de eroare.

al doilea macro anulează eliminarea colorării ;. Am folosit culoarea numbe ca r 3 pentru roșu. Dacă insistați asupra lavandei, trebuie să aflați numărul culorii, deoarece ar putea să înțeleg greșit ce vrei să spui prin levănțică. într-o celulă goală

colorați celula din levănțică. să presupunem că celula este E13 apoi du-te la editorul vb fereastra imediată și tipul:

? interval ( "E13"). interior.colorindex

și țineți cursorul la sfârșitul acestei linii și apăsați tasta Enter și obțineți numărul de culoare. utilizați-o în macro.

Cele două macrocomenzi sunt:

 Sub test () Dim col1 ca intreg, col2 ca intreg, col ca intreg, rrow ca integer Dim dimineata ca intreg col1 = gama ("J1") coloana col2 = gama ("Y1") coloana lastrow = foi de lucru ") .Range (" J2 ") Sfarsit (xlDown) .Resume" MsgBox lastrow Foaie de lucru ("sheet1") Cells.Interior.ColorIndex = xlNone Pentru col = col1 Pentru col2 Pasul 3 Pentru rrow = 2 Pentru a obtine celule MsgBox (1, col) .Adresa "MsgBox rrow Dacă foile de lucru (" foaia1 ") Celule (rrow, col) - foile de lucru (" sheet2 " (rrow, col) - Fișe de lucru ("sheet2") Celule (rrow, col) <20 Apoi foi de lucru ("sheet1"). 

 Sub undo () Fișe de lucru ("foaie1"). Cells.Interior.ColorIndex = xlNone End Sub 

Notă

Vă mulțumim pentru venkat1926 pentru acest sfat pe forum.

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi