Käyttäjät kohtaavat usein erityyppisiä virheitä VBA: ssa. Seuraavassa tarjoamme useita strategioita niiden käsittelemiseksi ja ratkaisemiseksi. Käymme läpi tekniikoita, joita voit käyttää koodin kyselyyn testauksen aikana, sekä menetelmiä virheiden havaitsemiseksi ajon aikana.
Erilaisten virheiden testaaminen ja jäljittäminen VBA-koodissa voi olla aikaa vievää ja turhauttavaa. Ei ole harvinaista kuulla ohjelmoijia. Ohjelmointi Ohjelmointi on prosessi, jolla kirjoitetaan ohjeita tietokoneen suorittamiseksi. Se on samanlainen kuin resepti ihmisille. Resepti sisältää luettelon toiminnoista, joiden mukaan yli 30% ajastaan käytetään testaukseen.
Ajan myötä voit paremmin välttää virheitä, mutta on epätodennäköistä, että kirjoitat täydellistä koodia ensimmäistä kertaa. Oppimalla VBA-virheiden välttämistä, käsittelemistä ja jäljittämistä säästät tulevaisuudessa paljon aikaa.
VBA-virheiden tyypit
Helpottamiseksi olemme luokittaneet koodausvirheiden tyypit kolmeen ryhmään. Tutkimme kutakin ryhmää varten joitain esimerkkejä ja keskustelemme sitten siitä, miten voit tutkia ja ratkaista ne.
1. Syntaksivirheet - Tiettyä koodiriviä ei ole kirjoitettu oikein
2. Käännä virheet - Ongelmia, joita esiintyy koodirivien kokoamisessa, vaikka yksittäiset koodirivit näyttävät olevan järkeviä
3. Suorituksenaikaiset virheet - Kun koodi on yleensä periaatteessa oikea, mutta käyttäjän tekemä toiminta tai käytettävät tiedot johtavat odottamattomiin virheisiin.
Mitä ovat syntaksivirheet?
Syntaksivirheet ovat VBA: n tapa kertoa sinulle, onko koodisi järkevä, perustasoilla. Voimme tehdä yksinkertaisen vertailun lauseen kirjoittamisen sääntöihin englanniksi:
- A aihe vaaditaan.
- A verbi vaaditaan.
- A iso alkukirjain kirje vaaditaan alussa.
- Välimerkit tarvitaan lopussa.
- Objektit, adjektiivit ja muut kieliopilliset ominaisuudet ovat valinnaisia.
Janelöytyi 18 virhettä VBA-koodissa.
Samalla tavalla VBA asettaa tietyt säännöt siitä, mitä tietyissä tilanteissa vaaditaan. Esimerkiksi kun aloitat ehdollisen IF-käskyn koodissasi, sinun on kopioitava seuraavat syntaksisäännöt IF-käskyn ensimmäiselle riville;
- Sen täytyy alkaa Jos
- Seuraavan on oltava a looginen testi , kuten x> 10
- Lopuksi sen on päätyttävä sanalla sitten
JosNumeroVirheet> 20sitten
Jos rikot yllä olevia englannin tai VBA: n sääntöjä, kielioppiasi (englanniksi) tai syntaksiasi (VBA) pidetään virheellisenä.
Syntaksivirheen tunnistaminen
VBA-editori korostaa syntaksivirheet punaisella, jolloin voit helposti tunnistaa ja ratkaista ne. Lisäksi, jos yrität suorittaa koodisi tai aloittaa uuden rivin, sinulle näytetään alla oleva syntaksivirheilmoitus.
Perus syntaksivirhe:
Syntaksin virheviestiruutu:
Varmista, että tarkistukset tapahtuvat kirjoittaessasi, ottamalla Automaattinen syntaksitarkistus käyttöön Asetukset-valikossa.
Kuinka korjata syntaksivirheet
Syntaksivirheet edustavat virheitä koodin tietyn rivin kirjoitustavassa. Ne on korjattava, ennen kuin voit käyttää koodia. Kokemuksen mukaan punainen teksti on kaikki mitä tarvitset virheen havaitsemiseksi. Mutta jos olet edelleen jumissa, etsi vain verkosta "if lause syntaksin vba" tai mikä tahansa muunnelma sopii tarpeisiisi, ja löydät paljon esimerkkejä tietystä rivistä, jota yrität kirjoittaa.
Mitä ovat käännösvirheet?
Käännösvirheet viittaavat laajempaan VBA-virheiden ryhmään, joka sisältää syntaksivirheet. Kääntövirheet tunnistavat myös koodisi ongelmat kokonaisuutena. Kunkin yksittäisen rivin syntaksit voivat olla oikein, mutta koodin riveillä ei ole järkeä, kun ne kootaan yhteen. Käännösvirheet korostetaan, kun käännät tai suoritat koodiasi.
Käännösvirheen tunnistaminen
Kun suoritat VBA-koodisi, kääntövirheet esitetään VBA-valintaikkunassa alla olevien esimerkkien mukaisesti.
Vaihtoehtoisesti, jos projektisi on pitkä tai monimutkainen ja sisältää useita rutiineja, voi olla hyödyllistä koota koodi ennen sen suorittamista. Se estää tilanteita, joissa puolet koodistasi suoritetaan onnistuneesti ja sitten ilmestyy virhe. Voit koota VBA-koodisi napsauttamalla Debug Menu → Compile VBA Project.
Esimerkki 1
Käännösvirhe puuttuvalle IF-lauseen "End if" -osalle. Jokainen yksittäinen rivi koodissa on oikea, mutta yhdessä ne eivät edusta täydellistä IF-käskyä.
Esimerkki 2
Tässä esimerkissä VBA-kääntöprosessi on havainnut syntaksivirheen, korostettuna punaisella. VBA osoittaa, että alla olevasta koodista puuttuu toiminnon sulkumerkki.
Esimerkki 3
Käännösvirheet ovat yleisiä, kun käytetään Option Explicitia, ja ne tapahtuvat, kun muuttujaa ei ole määritelty erikseen. Kun Option Explicit on aktivoitu, Dim-käsky tarvitaan kaikkien muuttujien ilmoittamiseen, ennen kuin niitä voidaan käyttää koodissasi.
Kuinka kääntää virheitä
VBA-kääntövirheet estävät rutiinien toiminnan. Ennen kuin korjaat ne, VBA ei voi tulkita koodiasi oikein. Virheilmoituskentät tarjoavat usein enemmän hyödyllisiä neuvoja kuin syntaksivirheiden yhteydessä.
Jos sinulle ei ole heti selvää, mikä ongelma ilmenee virhesanomasta, kokeile Microsoftin ohjekeskusta saadaksesi käsityksen siitä, miten lauseesi tai toimintosi tulisi kirjoittaa. Tässä on esimerkki Estä, jos ilman loppua, -virheilmoituksesta Microsoftin verkkosivustolla.
Mitä ovat ajonaikaiset virheet?
Kun olet korjannut syntaksivirheet ja kokoamisvirheet, olet valmis aloittamaan koodin testaamisen tai suorittamisen oikein, jotta näet, kuinka hyvin se suorittaa haluamasi toiminnot tai laskelmat. Kutsumme testauksen ajankohtaa tai koodin suoraa suorittamista "ajonaikaiseksi".
Suorituksenaikaisia virheitä ei voida havaita yksinkertaisesti katsomalla koodia; ne ovat seurausta koodistasi vuorovaikutuksessa tiettyjen syötteiden tai tietojen kanssa tuolloin.
Suorituksenaikaiset virheet johtuvat usein odottamattomien tietojen siirtämisestä VBA-koodiin, tietotyyppien yhteensopimattomuudesta, jakamisesta odottamattomilla nollilla ja määritellyistä solualueista, jotka eivät ole käytettävissä. Suorituksenaikaiset virheet ovat myös kaikkein vaihtelevimpia ja monimutkaisimpia jäljittää ja korjata.
Suorituksenaikaisen virheen tunnistaminen
VBA-virheenkorjaus VBA: koodin virheenkorjaus Kun kirjoitetaan ja suoritetaan VBA-koodia, käyttäjän on tärkeää oppia koodivirheiden virheenkorjaus. Excel-käyttäjän odotuksena on, että kooditoiminto korostaa ongelmakoodin keltaisella ja antaa meille pienen vihjeen siitä, mikä aiheuttaa ongelman.
Esimerkki 1
Vaikka alla oleva koodi yksinkertaisesti jakaa yhden numeron toisella, on joitain tapauksia, joissa se ei ole mahdollista. Esimerkiksi, jos solu A1 = 2 ja solu A2 = 0, ei ole mahdollista jakaa nollalla. Suorituksenaikaisen virheen ruutu sisältää virheenkorjauspainikkeen, joka korostaa ongelmakoodin.
Esimerkki 2
Tässä esimerkissä loin taulukon kerääksesi n yrityksen nimiä taulukkoon. Yritin sitten viitata kuudenteen kohtaan, jota voi olla tai ei välttämättä ajon aikana. VBA näyttää ajonaikaisen virhesanoman ja antaa minun tutkia ongelmaa painamalla Debug.
Kun painan Debugia, VBA korostaa koodirivin, joka aiheuttaa ongelman. Nyt on minun tehtäväni selvittää, mikä menee pieleen, käyttämällä alaindeksiä kantaman ulkopuolella. Ala-alueen ulkopuolella oleva virhe tarkoittaa yleensä, että koodi on periaatteessa hyvä, mutta etsimääsi kohdetta ei löydy. Yleisimmin se tapahtuu, kun viitataan soluihin tai alueisiin Excelissä sekä matriiseihin VBA-koodissasi.
Varmistaaksesi, että virheenkorjaustoiminto on käytössä, Asetukset> Yleiset> Virheen ansastus -valikossa oletusasetuksena tulisi olla "Katkaise käsittelemättömät virheet". Jätä vaihtoehto tarkistetuksi.
Suorituksenaikaisen virheen ratkaiseminen
Koska ajonaikaiset virheet ovat luonteeltaan vaihtelevia ja monimutkaisia, myös ratkaisut vaihtelevat. Kaksi yleistä tapaa vähentää ajonaikaisia virheitä ovat:
Virhe ansassa
On hyvä miettiä, mitä mahdollisia skenaarioita koodisi saattaa kohdata. Vielä parempi on testata koodiasi käytännön tiedoissa tai todellisten käyttäjien kanssa. Sen avulla voit tunnistaa tällaiset skenaariot VBA: ssa koodin haarautuessa eri tuloksiin virheiden mukaan.
Esimerkki 1
Tässä ”On Error Resume Next” -rivi pakottaa koodin jatkamaan, vaikka virhe havaittaisiin. Sitten käytämme If Err> 0 -testiä varoitusviestin luomiseen vain, jos virhe esiintyy. ‘On Error Goto 0’ palauttaa VBA: n oletustilaan.
Esimerkki 2
Tässä koodi laskee päivätuloja kuukausitulojen ja määritetyn päivien lukumäärän perusteella. Jos päivien lukumäärää ei anneta, siirrymme koodissamme olevaan määritettyyn kohtaan nimeltä “NoDaysInMonthProvided:”, jossa käytämme keskimääräistä kuukausipäivien määrää perusoletuksena. Vaikka se on yksinkertainen, se näyttää selvästi, kuinka ansaita virhe ja siirtyä toiseen kohtaan koodissasi.
Tyhjennä käyttöohjeet
Selkeät asiakirjat ja laskentataulukot varmistavat, että käyttäjät ovat vuorovaikutuksessa mallisi kanssa haluamallasi tavalla. Se auttaa estämään niitä, kun syötetään tekstiä numeroiden sijaan tai jätetään nollia, jotka voivat myöhemmin vaikuttaa koodiin.
Yhteenveto
VBA: ssa on kolme keskeistä virhetyyppiä, jotka voivat vaikuttaa koodiin eri tavoin. On tärkeää aktivoida VBA: n virheenetsintävaihtoehdot, kuten virheenkorjaus ja automaattinen syntaksitarkistus. Ne auttavat sinua selvittämään virheiden sijainnin ja luonteen.
Lisää resursseja
Rahoitus on maailmanlaajuisen Certified Banking & Credit Analyst (CBCA) ™ CBCA ™ -sertifikaatin virallinen toimittaja Certified Banking & Credit Analyst (CBCA) ™ -sertifikaatti on maailmanlaajuinen luottotietojen analyytikoiden standardi, joka kattaa rahoituksen, kirjanpidon, luottotutkimukset, kassavirta-analyysit , kovenanttimallinnus, lainojen takaisinmaksut ja paljon muuta. sertifiointiohjelma, joka on suunniteltu auttamaan kaikkia tulemaan maailmanluokan rahoitusanalyytikoiksi. Alla olevista lisäresursseista on hyötyä urasi jatkamiseksi:
- #REF Excel-virheet #REF Excel-virheet #REF Excel-virheet aiheuttavat suuria ongelmia laskentataulukoissa. Opi löytämään ja korjaamaan #REF-virheitä Excelissä tässä pikaoppaassa esimerkkien ja kuvakaappausten avulla. #REF! virhe ("ref" tarkoittaa viittausta) on Excel-viesti, kun kaava viittaa soluun, jota ei enää ole, johtuen solujen poistamisesta
- Excel VBA -esimerkkejä Excel VBA -esimerkkejä Excel VBA antaa käyttäjälle mahdollisuuden tehdä makroja, jotka automatisoivat prosesseja Excelissä. Tässä oppaassa käytetään Excel VBA -esimerkkejä osoittamaan, kuinka makro tallennetaan asettamalla makro, miten muuttujat ilmoitetaan ja miten tietoja viitataan.
- Vinkkejä VBA: n kirjoittamiseen Excelissä Vinkkejä VBA: n kirjoittamiseen Excelissä Alla on yhdeksän vinkkiä VBA: n kirjoittamiseen Excelissä. VBA for Excel tuo lukemattomia mahdollisuuksia mukautettuihin laskelmiin ja automaatioon.
- VBA-menetelmät VBA-menetelmät VBA-menetelmä on koodikappale, joka on liitetty VBA-objektiin, muuttujaan tai tietoviitteeseen ja joka kertoo Excelille, mitä toimia on suoritettava kyseisen objektin suhteen. Kopiointi, liittäminen ja valitseminen ovat vain joitain esimerkkejä suoritettavissa olevista VBA-menetelmistä.