Symptom
I Microsoft Office Excel kanske inte Microsoft Visual Basic for Application-makrokod (VBA) som finns "bakom" ett kalkylblad eller en arbetsbok fungerar korrekt.
Orsak
Detta inträffar om båda följande villkor uppfylls:
-
Koden i fråga finns i en automatiskt löpande subroutin, till exempel en Auto_Open eller Auto_Close subroutine.
-
Koden finns inte i en Visual Basic-modul, utan "bakom" ett kalkylblad eller själva arbetsboken.
Lösning
För att automatiskt köra subrutiner ska fungera korrekt i Microsoft Excel måste de finnas i en Visual Basic-modul.
Du måste infoga en Visual Basic-modul i arbetsboken och sedan placera koden i den nya modulen.
Så här infogar du en Visual Basic-modul:
-
Aktivera arbetsboken som innehåller den aktuella koden i Projektutforskaren i Visual Basic Editor.
-
Klicka på Modul på Infoga-menyn.
När den nya modulen har infogats klipper du ut koden från dess ursprungliga plats och klistrar in den i Visual Basic-modulen. Spara sedan arbetsboken.
Mer information
I Excel kan VBA-kod lagras på tre olika platser: i en Visual Basic-modul, i en Visual Basic-klassmodul och "bakom" kalkylblad och arbetsböcker.
Så här redigerar du koden "bakom" ett kalkylblad eller en arbetsbok:
-
Aktivera Visual Basic Editor (tryck på ALT+F11).
-
I fönstret Projektutforskaren visas poster som liknar följande:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Om du dubbelklickar på ett av kalkylbladens namn eller ThisWorkbook kan du skriva in kod i kodfönstret. En sådan kod som inte finns i en Visual Basic-modul anses ligga "bakom" kalkylbladet eller
Den här arbetsboken .
Om en Auto_Open, Auto_Close eller någon annan automatiskt löpande undermeny lagras "bakom" ett kalkylblad eller ThisWorkbook kanske det inte fungerar korrekt när du öppnar eller stänger arbetsboken, eller när du utför en åtgärd som ska leda till att underrubriken körs.