Symptomer
I Microsoft Office Excel kan det hende at microsoft Visual Basic for Application (VBA)-makrokode som inneholder «bak» et regneark eller en arbeidsbok, ikke fungerer som den skal.
Årsak
Dette skjer hvis begge av følgende betingelser er oppfylt:
-
Den aktuelle koden finnes i en automatisk underrutine, for eksempel en Auto_Open eller Auto_Close underrutine.
-
Koden finnes ikke i en Visual Basic-modul, men «bak» et regneark eller selve arbeidsboken.
Omgå problemet
For at underaktiviteter som kjører automatisk skal fungere riktig i Microsoft Excel, må de finnes i en Visual Basic-modul.
Du må sette inn en Visual Basic-modul i arbeidsboken og deretter plassere koden i den nye modulen.
Slik setter du inn en Visual Basic-modul:
-
Aktiver arbeidsboken som inneholder den aktuelle koden, i Project Explorer i Visual Basic Editor.
-
Klikk Modul på Sett inn-menyen.
Når den nye modulen er satt inn, klipper du ut koden fra den opprinnelige plasseringen og limer den inn i Visual Basic-modulen. Deretter lagrer du arbeidsboken.
Mer informasjon
I Excel kan VBA-kode lagres på tre forskjellige steder: i en Visual Basic-modul, i en Visual Basic-klassemodul, og «bak» regneark og arbeidsbøker.
Slik redigerer du koden «bak» et regneark eller en arbeidsbok:
-
Aktiver Visual Basic Editor (trykk ALT+F11).
-
I Prosjektutforsker-vinduet vil du se oppføringer som ligner på følgende:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Hvis du dobbeltklikker et av regnearknavnene eller ThisWorkbook, kan du skrive inn kode i kodevinduet. Slik kode som ikke finnes i en Visual Basic-modul, anses å være «bak» regnearket eller
ThisWorkbook .
Hvis en Auto_Open, Auto_Close eller en annen underrutine som kjører automatisk, lagres «bak» et regneark eller ThisWorkbook, kan det hende den ikke fungerer som den skal når du åpner eller lukker arbeidsboken, eller når du utfører en handling som skal føre til at underrutinen kjøres.