Microsoft Excel 97 verziu tohto článku nájdete v téme 157346.Microsoft Excel 98 verziu tohto článku nájdete v téme 182482.
Príznaky
V programe Microsoft Office Excel sa kód makra programu Microsoft Visual Basic for Application (VBA), ktorý je obsiahnutý v hárku alebo zošite, nemusí správne fungovať.
Príčina
Bude sa to stať, ak sú splnené obidve nasledovné podmienky:
-
Daný kód je obsiahnutý v rámci automaticky spusteného podbežného systému, ako je napríklad Auto_Open alebo Auto_Close subrutina.
-
Kód nie je obsiahnutý v module jazyka Visual Basic, ale "za" hárok alebo samotný zošit.
Alternatívne riešenie
Aby sa automaticky spustené podprogramy v Microsoft Exceli správne pracovali, musia byť obsiahnuté v module jazyka Visual Basic. Do zošita musíte vložiť modul jazyka Visual Basic a potom ho umiestniť do nového modulu. Ak chcete vložiť modul jazyka Visual Basic:
-
V programe Project Explorer v editore jazyka Visual Basic aktivujte zošit, ktorý obsahuje predmetný kód.
-
V ponuke Vložiť kliknite na položku modul.
Po vložení nového modulu vystrihnutie kódu z pôvodného umiestnenia a jeho prilepenie do modulu jazyka Visual Basic. Potom zošit uložte.
Ďalšie informácie
V Exceli môže byť kód VBA uložený na troch rôznych miestach: v module jazyka Visual Basic v module Visual Basic Class a v hárkoch a zošitoch za sebou. Ak chcete upraviť kód "za" hárok alebo zošit:
-
Aktivujte Editor jazyka Visual Basic (stlačte kombináciu klávesov ALT + F11).
-
V okne Prieskumník projektu sa zobrazia položky podobné nasledujúcim:
VBAProject (Book1) Microsoft Excel Objects Sheet1 (Sheet1) Sheet2 (Sheet2) Sheet3 (Sheet3) ThisWorkbook Modules Module1
Ak dvakrát kliknete na niektorý z názvov hárkov alebo Tento zošit, môžete zadať kód v okne kód. Takýto kód, ktorý nie je obsiahnutý v module Visual Basic, sa považuje za hárok aleboTento zošit . Ak je Auto_Open, Auto_Closealebo iné automaticky spustené podprogramy uložené v hárku alebo Tento zošit, nemusí fungovať správne pri otvorení alebo zatvorení zošita alebo pri vykonaní akcie, ktorá by mala spôsobiť spustenie podbežného systému.