VBA-kod "bakom" ett kalkyl blad eller en arbets bok fungerar kanske inte i Excel


En version av den här artikeln för Microsoft Excel 97 finns i 157346 .En version av den här artikeln för Microsoft Excel 98 finns i 182482 .

Symptom


I Microsoft Office Excel är makrokod med VBA (Visual Basic for Applications) som innehåller "bakom" ett kalkyl blad eller en arbets bok kanske inte fungerar som den ska.

Orsak


Detta inträffar om båda följande förutsättningar föreligger:
  • Koden i fråga ingår i en automatiskt återkommande subrutin, till exempel en Auto_Open eller Auto_Close subrutin.
  • Koden ingår inte i en Visual Basic-modul, men "bakom" ett kalkyl blad eller själva arbets boken.

Lösning


För att automatiska under rutiner ska fungera korrekt i Microsoft Excel måste de ingå i en Visual Basic-modul. Du måste infoga en Visual Basic-modul i arbets boken och sedan placera koden i den nya modulen. Så här infogar du en Visual Basic-modul:
  1. I projekt Utforskaren i Visual Basic Editor aktiverar du den arbets bok som innehåller koden i fråga.
  2. Klicka på ModulInfoga-menyn.
När den nya modulen har infogats kan du klippa bort koden från den ursprungliga platsen och klistra in den i Visual Basic-modulen. Spara sedan arbets boken.

Mer information


I Excel kan VBA-kod lagras på tre olika platser: i en Visual Basic-modul, i en modul i Visual Basic och arbets böcker. Så här redigerar du kod "bakom" ett kalkyl blad eller en arbets bok:
  1. Aktivera Visual Basic Editor (tryck på ALT + F11).
  2. I fönstret projekt Utforskaren ser du poster som följande:
         VBAProject (Book1)         Microsoft Excel Objects            Sheet1 (Sheet1)            Sheet2 (Sheet2)            Sheet3 (Sheet3)            ThisWorkbook                  Modules             Module1 
Om du dubbelklickar på något av kalkyl blads namnen eller objektetkan du skriva kod i kod fönstret. Koden som inte ingår i en Visual Basic-modul anses vara "bakom" kalkyl bladet ellerobjektet . Om en Auto_Open, Auto_Closeeller andra subrutiner som körs automatiskt lagras som "bakom" ett kalkyl blad eller en objektet, fungerar det kanske inte korrekt när du öppnar eller stänger arbets boken, eller när du utför en åtgärd som gör att subrutinen körs.