4 vältettävää virhettä Excel -makrojen ohjelmoinnissa VBA: n kanssa

4 vältettävää virhettä Excel -makrojen ohjelmoinnissa VBA: n kanssa

Microsoft Excel on jo kykenevä tietojen analysointityökalu, mutta kyky automatisoida toistuvat tehtävät makroilla kirjoittamalla yksinkertainen koodi Visual Basic for Applications (VBA) -ohjelmaan on paljon tehokkaampi. VBA: n käyttö voi kuitenkin aiheuttaa ongelmia.





Vaikka et olisikaan ohjelmoija, VBA tarjoaa yksinkertaisia ​​toimintoja, joiden avulla voit lisätä vaikuttavia toimintoja laskentataulukoihisi.





Sillä ei ole väliä, oletko VBA -guru, joka luo koontinäyttöjä Excelissä, vai aloittelija, joka kirjoittaa yksinkertaisia ​​komentosarjoja, jotka tekevät peruslaskelmia. Noudata näitä yksinkertaisia ​​ohjelmointitekniikoita oppiaksesi kirjoittamaan puhdasta, virheetöntä koodia.



VBA: n käytön aloittaminen

VBA voi tehdä kaikenlaisia ​​siistejä asioita puolestasi. Arkkia muokkaavien makrojen kirjoittamisesta sähköpostien lähettäminen Excel -laskentataulukosta VBA -komentosarjoja käyttäen tuottavuudellasi on hyvin vähän rajoituksia.

Jos et ole ohjelmoinut VBA: ta Excelissä, sinun on otettava kehittäjätyökalut käyttöön Excel -ohjelmassasi. Hyvä uutinen on, että kehittäjätyökalujen käyttöönotto on itse asiassa melko helppoa. Mene vain Tiedosto > Asetukset ja sitten Muokkaa nauhaa . Siirrä vain Kehittäjä välilehti vasemmalta ruudulta oikealle.



Varmista, että tämä välilehti on käytössä valintaruudussa, ja nyt Kehittäjä -välilehti näkyy Excel -valikossa.

Helpoin tapa päästä koodieditori -ikkunaan täältä on napsauttaa Näytä koodi painiketta alla Säätimet Kehittäjä -valikossa.





Olet nyt valmis kirjoittamaan VBA -koodia! Tällä välilehdellä pääset myös VBA: hon makrojen tallentaminen Exceliin . Nyt kun Excel on valmis toimimaan, käydään läpi joitain yleisiä vältettäviä virheitä ja tapoja estää ne.

1. Kamalat muuttujien nimet

Nyt kun olet koodi -ikkunassa, on aika aloittaa VBA -koodin kirjoittaminen. Ensimmäinen tärkeä askel useimmissa ohjelmissa, olipa kyseessä sitten VBA tai jokin muu kieli, on muuttujien määrittäminen. Muuttujien nimeämättä jättäminen on yksi yleisimmistä uusien kehittäjien tekemistä ohjelmointivirheistä.





instagram -seuraajia, jotka eivät seuraa takaisin

Vuosikymmenten aikana koodin kirjoittamisen aikana olen törmännyt moniin ajattelukohteisiin muuttuvien nimityskäytäntöjen suhteen ja oppinut muutamia sääntöjä vaikealla tavalla. Tässä muutamia nopeita vinkkejä muuttujien nimien luomiseen:

  • Tee niistä mahdollisimman lyhyitä.
  • Tee niistä mahdollisimman kuvaavia.
  • Esitä ne muuttujatyypillä (boolen, kokonaisluku jne ...).

Tässä on esimerkki kuvakaappauksesta ohjelmasta, jota käytän usein soittamaan WMIC Windows -puheluita Excelistä tietokoneen tietojen keräämiseksi.

Jos haluat käyttää muuttujia funktion sisällä moduulissa tai objektissa (selitän tämän alla), sinun on ilmoitettava se `` julkiseksi '' muuttujaksi kirjoittamalla ilmoituksen eteen Julkinen . Muutoin muuttujat ilmoitetaan asettamalla ne sanaan Ei mitään .

Kuten näette, jos muuttuja on kokonaisluku, sen alussa on int . Jos se on merkkijono, niin s . Tämä on henkilökohtainen mieltymys, joka auttaa myöhemmin ohjelmoinnin aikana, koska tiedät aina, millaisia ​​tietoja muuttuja pitää, vilkaisemalla nimeä.

Muista myös nimetä Excel -työkirjasi arkit.

Tällä tavalla, kun viittaat taulukon nimeen Excel VBA -koodissasi, tarkoitat nimeä, joka on järkevä. Yllä olevassa esimerkissä minulla on taulukko, josta vedän verkkotietoja, joten kutsun taulukkoa 'Verkko'. Aina kun haluan viitata Verkko -taulukkoon, voin tehdä sen nopeasti etsimättä, mikä arkin numero se on.

2. Katkaiseminen silmukoinnin sijasta

Yksi yleisimmistä ongelmista, joita uusilla VBA -ohjelmoijilla on, kun he alkavat kirjoittaa koodia, käsittelee silmukoita oikein.

Silmukointi on hyvin yleistä Excelissä, koska käsittelet usein data -arvoja koko riville tai sarakkeelle, joten sinun on toistettava kaikki, jotta voit käsitellä niitä.

Uudet ohjelmoijat haluavat usein vain murtautua silmukasta (VBA For silmukat tai VBA Do While -silmukat) heti, kun tietty ehto on totta.

Tässä on esimerkki tästä menetelmästä, jota käytetään VBA -silmukan katkaisemiseen.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

Uudet ohjelmoijat ottavat tämän lähestymistavan, koska se on helppoa. Yritä välttää nimenomaisesti silmukan rikkomista.

Useimmiten 'tauon' jälkeen tuleva koodi on tärkeä käsitellä. Paljon puhtaampi ja ammattimaisempi tapa hoitaa olosuhteet, joissa haluat jättää silmukan puolivälissä, on vain sisällyttää tämä poistumistila johonkin VBA: n lauseeseen.

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

Tämä mahdollistaa koodisi loogisen kulun. Nyt koodi kiertää ja pysähtyy, kun se saavuttaa 6. Ei tarvitse sisällyttää hankalia EXIT- tai BREAK-komentoja silmukan keskelle.

3. Älä käytä taulukkoja

Toinen mielenkiintoinen virhe, jonka uudet VBA -ohjelmoijat tekevät, on yrittää käsitellä kaikkea lukuisten sisäkkäisten silmukoiden sisällä, jotka suodatetaan alas rivien ja sarakkeiden läpi laskentaprosessin aikana.

Tämä voi myös johtaa suuriin suorituskykyongelmiin. Sarakkeen selaaminen ja arvojen poimiminen joka kerta on prosessorin tappaja. Tehokkaampi tapa käsitellä pitkiä numeroluetteloita on käyttää matriisia.

Jos et ole koskaan käyttänyt taulukkoa ennen, älä pelkää. Kuvittele taulukko jääpala -alustana, jossa on tietty määrä kuutioita, joihin voit laittaa tietoja. Kuutiot on numeroitu 1-12, ja näin 'laitat' tiedot niihin.

Voit helposti määrittää taulukon kirjoittamalla Dim arrMyArray (12) kokonaislukuna .

voinko lukea mangaa verkossa

Tämä luo 'lokeron', jossa on 12 paikkaa, jotka voit täyttää.

Tässä voi näyttää rivin silmukointikoodi ilman taulukkoa:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

Tässä esimerkissä koodi käsittelee alas jokaisen alueen solun läpi ja suorittaa lämpötilalaskennan.

Jos haluat joskus suorittaa jonkin muun laskelman näille samoille arvoille, prosessi olisi hankala. Sinun on kopioitava tämä koodi, käsiteltävä kaikki nämä solut ja suoritettava uusi laskenta. Kaikki yhdelle muutokselle!

Tässä on parempi esimerkki taulukon käyttämisestä. Luo ensin taulukko.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

The x-1 matriisielementtiin osoittamista varten tarvitaan vain, koska For -silmukka alkaa 1. Array -elementtien on aloitettava nollasta.

Nyt kun sinulla on taulukko, sisällön käsittely on erittäin helppoa.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

Tämä esimerkki käy läpi koko riviryhmän ( UBound antaa sinulle taulukon data -arvojen määrän), laskee lämpötilan ja asettaa sen sitten toiseen taulukkoon nimeltä arrMyTemps .

4. Liian monien viitteiden käyttö

Olitpa ohjelmoimassa täysivaltaisella Visual Basicilla tai VBA: lla, sinun on sisällytettävä viittauksia tiettyjen ominaisuuksien käyttämiseen.

Viitteet ovat eräänlaisia ​​'kirjastoja', jotka ovat täynnä toimintoja, joita voit hyödyntää, jos otat kyseisen tiedoston käyttöön. Löydät viitteet kehittäjänäkymästä napsauttamalla Työkalut valikosta ja napsauta sitten Viitteet .

Tästä ikkunasta löydät kaikki nykyisen VBA -projektisi valitut viitteet.

Tarkista tämä luettelo, koska tarpeettomat viittaukset voivat tuhlata järjestelmän resursseja. Jos et käytä mitään XML -tiedostojen käsittelyä, miksi pitää Microsoft XML valittuna? Jos et ole yhteydessä tietokantaan, poista Microsoft DAO jne.

Jos et ole varma, mitä nämä valitut viitteet tekevät, paina F2 ja näet Object Explorer. Tämän ikkunan yläreunasta voit valita selattavan viitekirjaston.

Kun olet valinnut, näet kaikki objektit ja käytettävissä olevat toiminnot, joista saat lisätietoja napsauttamalla.

Esimerkiksi kun napsautan DAO -kirjastoa, käy nopeasti ilmi, että kyse on tietokantoihin yhdistämisestä ja kommunikoinnista.

Ohjelmointiprojektissa käytettävien viitteiden määrän vähentäminen on järkevää, ja se auttaa tekemään sovelluksestasi tehokkaamman.

amazon -tilaus ei saapunut, mutta sanoo toimitettu

Ohjelmointi Excel VBA: ssa

Koko ajatus koodin kirjoittamisesta Excelissä pelottaa monia ihmisiä, mutta tämä pelko ei todellakaan ole välttämätön. Visual Basic for Applications on hyvin yksinkertainen kieli oppia, ja jos noudatat yllä mainittuja yleisiä yleisiä käytäntöjä, varmistat, että koodisi on puhdas, tehokas ja helppo ymmärtää.

Älä kuitenkaan lopeta siihen. Luo vahva perusta Excel -taidoille a VBA -opetusohjelma aloittelijoille . Jatka sitten VBA: n ja makrojen oppimista resursseilla, jotka auttavat sinua laskentataulukoidesi automatisoinnissa.

Jaa Jaa Tweet Sähköposti Kannattaako päivittää Windows 11: een?

Windows on suunniteltu uudelleen. Mutta riittääkö se vakuuttamaan sinut siirtymään Windows 10: stä Windows 11: een?

Lue seuraava
Liittyvät aiheet
  • Tuottavuus
  • Ohjelmointi
  • Ohjelmointi
  • Visual Basic -ohjelmointi
  • Microsoft Excel
Kirjailijasta Anthony Grant(40 artikkelia julkaistu)

Anthony Grant on freelance -kirjailija, joka kattaa ohjelmoinnin ja ohjelmistot. Hän on tietojenkäsittelytieteen pääopiskelija ohjelmoinnissa, Excelissä, ohjelmistoissa ja tekniikassa.

Lisää Anthony Grantilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi