Cum se anulează acțiunile macro, excelează pentru toți

Mulți dintre cei care programează în VBA știu că după acțiunile macrocomenzii dispare abilitatea de a anula acțiunile. Și dacă, odată cu anularea acelor acțiuni care au fost comise înainte de executarea macrocomenzii, poți să-ți spui la revedere (va fi imposibil să faci asta), atunci este posibil să anulezi acțiunile macrocomenzii. Și mai devreme sau mai târziu, fiecare programator din VBA pune întrebarea: cum puteți anula acțiunile comise [...] (textul integral al articolului)







  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți
  • Cum se anulează acțiunile macro, excelează pentru toți






Căutați după etichetă

Mare, vă mulțumesc foarte mult pentru exemplul de mai sus.
Prima metodă este bună - suficient pentru a face metoda Fill_Numbers (), de exemplu, cu datele de schimbare, și se transformă într-o metodă aproape completă pentru a salva acțiunea pentru intervalul selectat, care poate fi numit la începutul metodei sale. Din păcate, linia

Application.OnUndo
Trebuie să sun la sfârșitul metodei sale: pentru a scrie o metodă generică nu funcționează - utilizarea delegaților nu am găsit (poate rău în căutarea) pentru VBA Excel.
În general, metoda este excelent - dacă stocați o referință (sau o serie de state) în etapele anterioare, va fi posibil să se anuleze nu numai ultimul macro, dar, de asemenea, penultima și așa mai departe)

În opinia mea, este necesar să se utilizeze prima metodă, deoarece ștergerea unei foi va strica link-urile, ceea ce înseamnă că este mai bine, fără a anula acțiunile.

Trebuie să creați o foaie ascunsă pentru completare și să stocați intervalul, numele foii, numele cărții și numele procedurii care a efectuat modificările pe ea.
Și când va fi necesar, să anulați aceste acțiuni de la final și în cazul închiderii fișierului de completare - pentru a curăța foaia de istoric.

Serghei, nu ți-ai înțeles ideea. De ce să creați o foaie pentru stocarea datelor, dacă prima metodă utilizează o matrice pentru aceasta? În plus, toate valorile intervalului, formulelor, parametrilor celulelor, care sunt foarte capabili, trebuie introduse și pe foaie. Și scrierea și extragerea valorilor din foaie va încetini semnificativ acțiunile de cod, care pe mai mult sau mai puțin volume mari vor fi mai mult decât observabile. Dar aici, în principiu, problema fanteziei - nu am prefăcut originalitatea și versatilitatea soluției. Sarcina mea a fost să arăt principiul și dacă ați găsit mai bine o soluție - acesta este doar un plus pentru dvs.







Articole similare

Trimiteți-le prietenilor: