Tässä opetusohjelmassa selitetään, mitä VBA -kääntämisvirhe tarkoittaa ja miten se ilmenee.
Ennen koodin suorittamista VBA Editor kokoaa koodin. Tämä tarkoittaa pohjimmiltaan sitä, että VBA tutkii koodisi varmistaakseen, että kaikki vaatimukset täyttyvät sen suorittamiseksi oikein - se tarkistaa, että kaikki muuttujat on ilmoitettu (jos käytät Option Explicit -toimintoa, joka sinun pitäisi!), Tarkista, että kaikki menettelyt on ilmoitettu , tarkista silmukat ja onko lausekkeet jne. Koodaamalla VBA auttaa minimoimaan mahdolliset ajonaikaiset virheet.
(Katso virheidenkäsittelyoppaastamme lisätietoja VBA -virheistä)
Pimeät muuttujat
Jos et ilmoita muuttujia, mutta Option Explicit on kytketty päälle moduulin yläosassa ja suoritat sitten makron, tapahtuu kääntämisvirhe.
Jos napsautat OK, asianmukainen menettely siirtyy virheenkorjaustilaan.
Vaihtoehtoisesti voit pakottaa koodin kokoamisen ennen koodin suorittamista.
Kohteessa Valikko, valitse Debug> Käännä projekti.
Kääntäjä löytää kaikki kääntämisvirheet ja korostaa ensimmäisen löytämänsä vastaavasti.
Pimeät menettelyt
Jos koodi viittaa menettelyyn, jota ei ole olemassa, saat myös kääntämisvirheen.
Esimerkiksi:
1234 | OsapuheluMenettely ()"Sitten jotain koodia täälläSoita NextProcedureEnd Sub |
Kuitenkin, jos menettely - Seuraava menettely ei ole olemassa, silloin tulee kääntämisvirhe.
Virheellinen koodaus - Lausuman odotettu loppu
Jos luot silmukan käyttämällä Sillä… Jokainen… Seuraava tai … Lopeta ja unohda ja Seuraava tai Lopeta… Saat myös kääntämisvirheen.
123456 | Alikääntämisvirhe ()Dim wb TyökirjanaDim ws laskentataulukkonaJokaiselle ws In wbMsgBox ws.NameEnd Sub |
Sama tapahtuu If -lausekkeen kanssa, jos End If jätetään pois!
Puuttuvat viitteet
Jos käytät objektikirjastoa, joka ei ole Excelin osa, mutta käytät muuttuvan ilmoituksen kirjaston objekteja, saat myös käännösvirheen.
Tämä voidaan ratkaista joko myöhäisellä sidonnalla - muuttujien ilmoittaminen objekteiksi; tai lisäämällä asiaankuuluva Objektikirjasto hankkeeseen.
Kohteessa Valikko, valitse Työkalut> Viitteet ja lisää asiaankuuluva objektikirjasto projektiin.