VBA kompileerimise viga

See õpetus selgitab, mida VBA kompileerimisviga tähendab ja kuidas see ilmneb.

Enne koodi käivitamist kompileerib VBA redaktor koodi. See tähendab põhimõtteliselt seda, et VBA kontrollib teie koodi, veendumaks, et selle nõuetekohaseks käitamiseks on kõik nõuded olemas - kontrollib, kas kõik muutujad on deklareeritud (kui kasutate suvandit Explicit, mida peaksite!), Kontrollige, kas kõik protseduurid on deklareeritud , kontrollige silmuseid ja kas avaldusi jne. Koodi koostamisega aitab VBA minimeerida kõiki käitusaja tõrkeid.

(VBA vigade kohta lisateabe saamiseks vaadake meie vigade käsitlemise juhendit)

Deklareerimata muutujad

Kui te muutujaid ei deklareeri, kuid teie suvand Explicit on mooduli ülaosas sisse lülitatud ja seejärel käivitate makro, ilmneb kompileerimisviga.

Kui klõpsate nuppu OK, läheb vastav protseduur silumisrežiimi.

Teise võimalusena võite enne koodi käivitamist sundida koodi kompileerima.

Aastal Menüü, valige Silumine> Projekti koostamine.

Kompilaator leiab kõik kompileerimisvead ja tõstab vastavalt esile esimese.

Deklareerimata protseduurid

Kui kood viitab protseduurile, mida pole olemas, saate ka kompileerimisvea.

Näiteks:

1234 Alamkõneprotseduur ()"Mingi kood siis siinHelistage järgmisele protseduurileEnd Sub

Kui aga protseduur - Järgmine protseduur pole olemas, ilmub kompileerimisviga.

Vale kodeerimine - avalduse eeldatav lõpp

Kui loote silmuse kasutades Sest … Iga … Järgmine või Koos… Lõpeta ja unusta ja Edasi või Lõpeta… Saate ka kompileerimisvea.

123456 Alamkompileerimise viga ()Dim wb TöövihikunaDim ws töölehenaIga ws sisse wbMsgBox ws.NameEnd Sub

Sama juhtub If -lausega, kui lõpp If välja jätta!

Viited puuduvad

Kui kasutate objektiraamatukogu, mis ei kuulu Excelisse, kuid kasutate oma muutujadeklaratsiooni raamatukogust pärit objekte, kuvatakse ka kompileerimisviga.

Seda saab lahendada kas hilise sidumisega - muutujate deklareerimine objektideks; või lisades asjakohase Objektide kogu projektile.

Aastal Menüü, valige Tööriistad> Viited ja lisage oma projektile vastav objektiteek.

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave