Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Identifikujte problematickú čiaru:
Prvý krok je rozhodujúci. Chybové hlásenie zvyčajne (aj keď nie vždy) označuje číslo riadku vo vašom kóde VBA, kde sa vyskytne chyba. Zamerajte tam svoje ladiace úsilie.
2. Bežné príčiny a riešenia:
* Nesprávne odkazy na objekt: Možno sa snažíte získať prístup k vlastnosti alebo metóde objektu, ktorý neexistuje, nie je k dispozícii v súčasnom kontexte alebo nebol riadne inicializovaný.
* Príklad: `Pracovné hárky (" Sheet1 "). Rozsah (" A1 "). Value =10` vyhodí chybu, ak" Sheet1 "neexistuje.
* Riešenie: Dvojito skontrolujte názvy vašich listov, referencie rozsahu (napr. Adresy buniek, pomenované rozsahy) a názvy objektov (napr. „ActiveWorkbook`,` selection`). Použite príkaz `On Error pokračovať v nasledujúcom" opatrne na obídenie chyby (pozri nižšie), ale vždy preskúmajte hlavnú príčinu. Zvážte použitie chyby (napr. „O Chyba goto errhandler“).
* Povolenia súboru: Ak sa váš kód pokúša prístup alebo upraviť súbor, ktorý je uzamknutý alebo nemáte povolenie, získate túto chybu.
* Riešenie: Uistite sa, že súbor nie je otvorený v inom programe a že máte potrebné povolenia.
* Nesúlady typu údajov: Pokus o priradenie hodnoty nesprávneho typu údajov k premennej alebo vlastnosti objektu spôsobí chybu.
* Príklad: Priradenie reťazca k číselnej premennej.
* Riešenie: Starostlivo preskúmajte svoje variabilné vyhlásenia a úlohy. Na konverziu typov údajov podľa potreby použite `CSTR`,` Cint`, `CDBL` atď.
* Nedostatočná pamäť: Excel nemusí mať dostatok pamäte na vykonanie operácie.
* Riešenie: Zatvorte zbytočné aplikácie, uložte si zošit a skúste to znova. Zvážte optimalizáciu svojho kódu pre efektívnosť.
* poškodený zošit: Poškodený zošit môže spôsobiť početné chyby vrátane 1004.
* Riešenie: Skúste vytvoriť nový zošit a skopírovať svoje údaje a kód. Ak problém pretrváva, vaša inštalácia programu Excel by mohla byť poškodená; Skúste to opraviť alebo preinštalovať.
* Nastavenia zabezpečenia makra: Ak sa vaše makro pokúsi získať prístup k chráneným zdrojom alebo vykonávať akcie obmedzené nastaveniami zabezpečenia Excel, môže to zlyhať.
* Riešenie: Skontrolujte svoje nastavenia zabezpečenia makro Excel. Dočasne zakázať zabezpečenie makro (používajte s opatrnosťou!) Alebo udeľte potrebné povolenia na makro.
* Nesprávne použitie `copy` alebo` paste`: Chyby sa často vyskytujú pri pokuse o kopírovanie alebo prilepenie rozsahov s rôznymi rozmermi alebo vlastnosťami.
* Riešenie: Pred vykonaním operácií kopírovania/prilepenia zaistite, aby boli kompatibilné s rozsažnými a cieľovými rozsahmi. Použite explicitné rozsahy namiesto spoliehania sa na „výber“.
3. Techniky ladenia:
* `O chybovom pokračovaní nasledujúcej: Toto vyhlásenie dáva pokyn VBA, aby chybu ignorovala a pokračovala v ďalšom riadku. Použite to striedmo pretože môže maskovať vážne problémy. Používajte iba na chyby, ktoré ste si istí, že môžete bezpečne ignorovať (napr. Súbor, ktorý sa nenašiel za konkrétnych okolností).
* `O chybi goto errhandler`: To poskytuje štruktúrovanejší prístup k spracovaniu chýb. Definujete štítok „errhandler`, kde môžete vyriešiť chybu elegantne (napr. Zaznamenajte ju, zobrazte správu, vykonajte alternatívnu akciu).
* prejsť svojím kódom: Použite debugger v editore VBA (Key F8) na prechádzanie kódným riadkom po riadku. To vám umožní skontrolovať premenné a presne vidieť, kde sa chyba vyskytne.
* `Vyhlásenia debug.print`: Vložte príkazy `debug.print` a zobrazte hodnoty premenných v rôznych bodoch vášho kódu. To pomáha identifikovať potenciálne problémy. Prezrite si výstup v bezprostrednom okne (Ctrl+G).
* VBA VBA LOOKOVÉHO OKDENIA: Pozerajte sa na premenné hodnoty, ktoré sa menia pri prechode cez kód.
* Zjednodušte svoj kód: Rozdeľte zložité postupy na menšie, zvládnuteľnejšie časti. To uľahčuje identifikáciu zdroja chýb.
Príklad manipulácie s chybami:
`` `VBA
Sub mysub ()
Na chybu goto errhandler
„Váš kód tu ...
Pracovné hárky ("Sheet1"). Rozsah ("A1"). Value ="Ahoj"
Výstup Sub 'Normálne
Errhandler:
MSGBox „Error:“ &err.Number &" -" &err.description
„Prijmite príslušné kroky, napr. Zaznamenajte chybu, zobrazte správu používateľovi atď.
Koncový
`` `
Nezabudnite vždy nahradiť názvy a rozsahy zástupných symbolov svojimi skutočnými. Poskytnite špecifický úryvok kódu, ktorý spôsobuje chybu pre väčšiu pomoc na mieru.