Symptomen
In Microsoft Office Excel werkt microsoft VBA-macrocode (Visual Basic for Application) die zich 'achter' een werkblad of werkmap bevindt mogelijk niet correct.
Oorzaak
Dit gebeurt als aan beide van de volgende voorwaarden wordt voldaan:
-
De code in kwestie bevindt zich in een automatisch uitgevoerde subroutine, zoals een Auto_Open of Auto_Close subroutine.
-
De code bevindt zich niet in een Visual Basic-module, maar 'achter' een werkblad of de werkmap zelf.
Tijdelijke oplossing
Automatisch uitgevoerde subroutines werken alleen correct in Microsoft Excel als ze deel uitmaken van een Visual Basic-module.
U moet een Visual Basic-module invoegen in de werkmap en vervolgens de code in de nieuwe module plaatsen. Een Visual Basic-module invoegen:-
Activeer in projectverkenner in Visual Basic Editor de werkmap met de code in kwestie.
-
Klik op Module in het menu Invoegen.
Nadat de nieuwe module is ingevoegd, knipt u de code van de oorspronkelijke locatie en plakt u deze in de Visual Basic-module. Sla de werkmap vervolgens op.
Meer informatie
In Excel kan VBA-code worden opgeslagen op drie verschillende locaties: in een Visual Basic-module, in een Visual Basic-klassemodule en 'achter' werkbladen en werkmappen.
Code 'achter' een werkblad of werkmap bewerken:-
Activeer de Visual Basic Editor (druk op Alt+F11).
-
In het venster Projectverkenner ziet u vermeldingen die er ongeveer als volgt uitzien:
VBAProject (Book1)
Microsoft Excel Objects
Sheet1 (Sheet1)
Sheet2 (Sheet2)
Sheet3 (Sheet3)
ThisWorkbook
Modules
Module1
Als u dubbelklikt op een van de werkbladnamen of op ThisWorkbook, kunt u code typen in het codevenster. Dergelijke code die niet in een Visual Basic-module is opgenomen, wordt beschouwd als 'achter' het werkblad of
Thisworkbook. Als een Auto_Open, Auto_Close of andere automatisch uitgevoerde subroutine 'achter' een werkblad of ThisWorkbook is opgeslagen, werkt deze mogelijk niet goed wanneer u de werkmap opent of sluit of wanneer u een actie uitvoert waardoor de subroutine wordt uitgevoerd.