VBA-koodi "takana" laskentataulukossa tai työkirjassa ei ehkä toimi Excelissä

Ongelman ilmenemistapa

Microsoft Office Excelissä Laskentataulukon tai työkirjan takana oleva Microsoft Visual Basic for Application (VBA) -makrokoodi ei ehkä toimi oikein.

Syy

Näin tapahtuu, jos molemmat seuraavista ehdoista täyttyvät:

  • Kyseinen koodi sisältyy automaattisesti käynnissä olevaan alirutiiniin, kuten Auto_Open tai Auto_Close alirutiiniin.
  • Koodi ei sisälly Visual Basic -moduuliin, vaan se on laskentataulukon tai työkirjan takana.

Vaihtoehtoinen menetelmä

Jotta automaattisesti suoritettavat aliohjelmat toimivat oikein Microsoft Excelissä, niiden on oltava Visual Basic -moduulissa.

Sinun on lisättävä Visual Basic -moduuli työkirjaan ja sijoita koodi uuteen moduuliin.

Visual Basic -moduulin lisääminen:

  1. Aktivoi Visual Basic Editorin Project Explorerissa työkirja, joka sisältää kyseisen koodin.
  2. Valitse Insert-valikosta Module.

Kun uusi moduuli on lisätty, leikkaa koodi alkuperäisestä sijainnistaan ja liitä se Visual Basic -moduuliin. Tallenna sitten työkirja.

Lisätietoja

Excelissä VBA-koodi voidaan tallentaa kolmeen eri sijaintiin: Visual Basic -moduuliin, Visual Basic -luokkamoduuliin ja "takana" laskentataulukoihin ja työkirjoihin.

Voit muokata laskentataulukon tai työkirjan takana olevan koodin muokkausta:

  1. Aktivoi Visual Basic Editor (paina ALT+F11).
  2. Project Explorer -ikkunassa näkyvät seuraavanlaiset merkinnät:

        
         VBAProject (Book1)
         Microsoft Excel Objects
            Sheet1 (Sheet1)
            Sheet2 (Sheet2)
            Sheet3 (Sheet3)
            ThisWorkbook         
         Modules
             Module1

Jos kaksoisnapsautat jotakin laskentataulukon nimeä tai Tätä työkirjaa, voit kirjoittaa koodin koodi-ikkunaan. Tällaista koodia, joka ei sisälly Visual Basic -moduuliin, pidetään laskentataulukon "takana" tai
Tämä työkirja.

Jos Auto_Open, Auto_Close tai muu automaattisesti käynnissä oleva alirutiini tallennetaan laskentataulukon tai ThisWorkbookin taakse, se ei ehkä toimi oikein, kun avaat tai suljet työkirjan tai suoritat toiminnon, jonka pitäisi aiheuttaa alirutiinin suorittaminen.