Pentru o versiune Microsoft Excel 97 a acestui articol, consultați 157346.Pentru o versiune Microsoft Excel 98 a acestui articol, consultați 182482.
Simptome
În Microsoft Office Excel, codul de macrocomandă Microsoft Visual Basic for Application (VBA) care conține "în spatele" unei foi de lucru sau a unui registru de lucru poate să nu funcționeze corect.
Cauză
Acest lucru va apărea dacă ambele dintre următoarele condiții sunt adevărate:
-
Codul în cauză este conținut în interiorul unei subrutine care rulează automat, cum ar fi un Auto_Open sau Auto_Close subrutine.
-
Codul nu este conținut într-un modul Visual Basic, ci în "în spatele" unei foi de lucru sau a registrului de lucru propriu-zis.
Soluție de evitare
Pentru ca subrutinele care se execută automat să funcționeze corect în Microsoft Excel, acestea trebuie să fie conținute într-un modul Visual Basic. Trebuie să inserați un modul Visual Basic în registrul de lucru, apoi să amplasați codul în modulul nou. Pentru a insera un modul Visual Basic:
-
În Explorer Project din Visual Basic Editor, activați registrul de lucru care conține codul în cauză.
-
În meniul Insert, faceți clic pe Module.
După ce se inserează modulul nou, decupați codul din locația sa inițială și lipiți-l în modulul Visual Basic. Apoi, Salvați registrul de lucru.
Mai multe informații
În Excel, codul VBA poate fi stocat în trei locații diferite: într-un modul Visual Basic, într-un modul Visual Basic Class și în "Behind" foi de lucru și registre de lucru. Pentru a edita codul "în spatele" unei foi de lucru sau a unui registru de lucru:
-
Activați Visual Basic Editor (apăsați ALT + F11).
-
În fereastra Project Explorer , veți vedea intrări asemănătoare cu următoarele:
VBAProject (Book1) Microsoft Excel Objects Sheet1 (Sheet1) Sheet2 (Sheet2) Sheet3 (Sheet3) ThisWorkbook Modules Module1
Dacă faceți dublu clic pe unul dintre numele foii de lucru sau pe acestregistrudelucru, puteți să tastați cod în fereastra cod. Acest cod care nu este conținut într-un modul Visual Basic este considerat "în spatele" foii de lucru sauacestregistrudelucru . Dacă o Auto_Open, Auto_Closesau altă subrutină care rulează automat este stocată "în spatele" unei foi de lucru sau acestregistrudelucru, este posibil să nu funcționeze corect atunci când deschideți sau închideți registrul de lucru sau când efectuați o acțiune care ar trebui să provoace rularea subrutinei.