VBA kompilācijas kļūda

Šī apmācība izskaidros, ko nozīmē VBA kompilācijas kļūda un kā tā rodas.

Pirms koda palaišanas VBA redaktors apkopo kodu. Tas būtībā nozīmē, ka VBA pārbauda jūsu kodu, lai pārliecinātos, ka ir izpildītas visas prasības, lai to pareizi palaistu - tā pārbaudīs, vai visi mainīgie ir deklarēti (ja izmantojat opciju Explicit, kas jums jādara!), Pārbaudiet, vai visas procedūras ir deklarētas , pārbaudiet cilpas un paziņojumus utt. Apkopojot kodu, VBA palīdz samazināt visas izpildlaika kļūdas.

(Plašāku informāciju par VBA kļūdām skatiet mūsu kļūdu apstrādes rokasgrāmatā)

Nedeklarētie mainīgie

Ja jūs nedeklarējat mainīgos, bet jūsu opcija Explicit ir ieslēgta moduļa augšdaļā un pēc tam palaižat makro, radīsies kompilēšanas kļūda.

Ja noklikšķināsit uz Labi, attiecīgā procedūra nonāks atkļūdošanas režīmā.

Vai arī pirms koda palaišanas varat piespiest koda apkopošanu.

Iekš Izvēlne, izvēlieties Atkļūdošana> Kompilēt projektu.

Kompilators atradīs visas apkopošanas kļūdas un attiecīgi iezīmēs pirmo, ko tas atradis.

Nedeklarētas procedūras

Ja kods attiecas uz procedūru, kas neeksistē, tiks parādīta arī kompilēšanas kļūda.

Piemēram:

1234 Apakšzvana procedūra ()'tad kāds kods šeitZvaniet NextProcedureBeigu apakš

Tomēr, ja procedūra - Nākamā procedūra nepastāv, tad radīsies kompilēšanas kļūda.

Nepareizs kodējums - paredzamās paziņojuma beigas

Ja izveidojat cilpu, izmantojot Par … Katru … Nākamo vai Ar… Beigt ar un aizmirst un Nākamais vai Beigt ar… jūs saņemsiet arī kompilācijas kļūdu.

123456 Apakkompilācijas kļūda ()Dim wb kā darbgrāmataDim ws kā darblapaPar katru ws In wbMsgBox ws.NameBeigu apakš

Tas pats notiks ar paziņojumu If, ja izlaidīs beigu If!

Trūkst atsauču

Ja izmantojat objektu bibliotēku, kas nav daļa no programmas Excel, bet mainīgo deklarācijā izmantojat bibliotēkas objektus, tiks parādīta arī kompilēšanas kļūda.

To var atrisināt ar Late Binding - deklarējot mainīgos par Objects; vai pievienojot atbilstošo Objektu bibliotēka uz projektu.

Iekš Izvēlne, izvēlieties Rīki> Atsauces un pievienojiet savam projektam attiecīgo objektu bibliotēku.

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave