4 pogreške koje treba izbjeći pri programiranju Excel makronaredbi s VBA

4 pogreške koje treba izbjeći pri programiranju Excel makronaredbi s VBA

Microsoft Excel je već sposoban alat za analizu podataka, ali s mogućnošću automatizacije ponavljajućih zadataka s makronaredbama pisanjem jednostavnog koda u Visual Basicu za aplikacije (VBA) toliko je snažniji. Međutim, ako se nepravilno koristi, VBA može uzrokovati probleme.





Čak i ako niste programer, VBA nudi jednostavne funkcije koje vam omogućuju dodavanje impresivnih funkcionalnosti vašim proračunskim tablicama.





Nije važno jeste li VBA guru koji stvara nadzorne ploče u Excelu ili početnik koji piše jednostavne skripte koje rade osnovne izračune ćelija. Slijedite ove jednostavne tehnike programiranja da biste naučili pisati čist kod bez grešaka.





Početak rada s VBA

VBA može učiniti sve vrste urednih stvari za vas. Od pisanja makronaredbi koje mijenjaju listove u slanje e -pošte iz Excel proračunske tablice pomoću VBA skripti postoji vrlo malo ograničenja u vašoj produktivnosti.

Ako prije niste programirali VBA u Excelu, morat ćete omogućiti alate za razvojne programere u programu Excel. Dobra vijest je da je omogućavanje razvojnih alata zapravo prilično jednostavno. Samo idite na Datoteka > Opcije i onda Prilagodite vrpcu . Samo pomaknite Programer karticu s lijevog okna na desno.



Provjerite je li u potvrdnom okviru omogućena ova kartica, a sada će se kartica Razvojni programer pojaviti na vašem izborniku programa Excel.

Najlakši način da odavde uđete u prozor uređivača koda je samo kliknuti na Prikaži kôd gumb ispod Kontrole u izborniku Developer.





Sada ste spremni za pisanje VBA koda! Ova kartica je mjesto gdje ćete pristupiti i VBA snimanje makronaredbi u Excelu . Sada kada je Excel spreman za rad, prijeđimo na neke uobičajene greške koje treba izbjeći i načine kako ih spriječiti.

1. Strašna imena varijabli

Sada kada ste u prozoru koda, vrijeme je za početak pisanja VBA koda. Prvi važan korak u većini programa, bilo da se radi o VBA ili bilo kojem drugom jeziku, je definiranje vaših varijabli. Nepravilno imenovanje varijabli jedna je od najčešćih programskih grešaka koje čine novi programeri.





zašto moj xbox one priča

Tijekom desetljeća pisanja koda naišao sam na mnoge škole mišljenja kada su u pitanju konvencije imenovanja varijabli i na teži način naučio nekoliko pravila. Evo nekoliko brzih savjeta za stvaranje naziva varijabli:

  • Neka budu što kraći.
  • Učinite ih što je moguće opisnijim.
  • Predgovorite ih s varijablom tipa (boolean, integer, itd ...).

Evo primjera snimke zaslona iz programa koji često koristim za upućivanje WMIC Windows poziva iz programa Excel radi prikupljanja podataka o računalu.

Kada želite koristiti varijable unutar funkcije unutar modula ili objekta (to ću objasniti u nastavku), morate je deklarirati kao 'javnu' varijablu tako što ćete deklaraciju unijeti unaprijed Javnost . Inače, varijable se deklariraju unaprijed im se stavlja riječ Nijedan .

Kao što možete vidjeti, ako je varijabla cijeli broj, njoj je prethodilo int . Ako je to niz, onda str . Ovo je osobna sklonost koja će vam kasnije pomoći tijekom programiranja jer ćete uvijek pogledati koju vrstu podataka varijabla posjeduje pogledom na naziv.

Također, svakako dajte listovima naziv u Excel radnoj knjizi.

Na ovaj način, kada se pozivate na naziv lista u Excel VBA kodu, govorite o imenu koje ima smisla. U gornjem primjeru imam list u koji uvlačim podatke o mreži pa list nazivam 'Mreža'. Svaki put kad se želim pozvati na list mreže, mogu to učiniti brzo bez traženja broja lista.

2. Razbijanje umjesto petlji

Jedan od najčešćih problema koji noviji VBA programeri imaju kad počnu pisati kôd je pravilno rješavanje petlji.

Petlje su vrlo česte u Excelu jer često obrađujete podatkovne vrijednosti niz cijeli redak ili stupac, pa morate petlju obraditi sve njih.

Novi programeri često žele jednostavno izaći iz petlje (VBA For petlje ili VBA Do While petlje) odmah kada je određeni uvjet istinit.

Evo primjera ove metode koja se koristi za prekid VBA petlje.

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

Novi programeri koriste ovaj pristup jer je jednostavan. Pokušajte izbjeći izričito prekidanje petlje.

Češće nego ne, kôd koji dolazi nakon te 'pauze' važno je obraditi. Mnogo čistiji i profesionalniji način rješavanja uvjeta u kojima želite ostaviti petlju na pola puta je samo uključivanje tog izlaznog uvjeta u nešto poput VBA While izraza.

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

To omogućuje logičan tijek vašeg koda. Sada će kôd prolaziti i zaustaviti se kad dosegne 6. Nema potrebe uključivati ​​neugodne naredbe EXIT ili BREAK u sredini petlje.

3. Ne koristite nizove

Još jedna zanimljiva pogreška koju čine novi VBA programeri je pokušaj obraditi sve unutar brojnih ugniježđenih petlji koje se filtriraju kroz retke i stupce tijekom procesa izračuna.

To bi također moglo dovesti do velikih problema s performansama. Ponavljanje kroz stupac i vađenje vrijednosti svaki put ubija procesor. Učinkovitiji način rukovanja dugim popisima brojeva je korištenje niza.

Ako nikada prije niste koristili niz, nemojte se bojati. Zamislite niz kao poslužavnik s kockicama leda s određenim brojem 'kockica' u koje možete staviti informacije. Kocke su označene brojevima od 1 do 12, i na taj način u njih 'stavljate' podatke.

Možete jednostavno definirati niz samo upisivanjem Zatamnite arrMyArray (12) kao cijeli broj .

spojite bluetooth slušalice na xbox one

Time se stvara 'ladica' s 12 mjesta na raspolaganju za popunjavanje.

Evo kako bi mogao izgledati kružni kôd reda bez polja:

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

U ovom primjeru kôd se obrađuje kroz svaku ćeliju u rasponu i vrši proračun temperature.

Ako ikada želite izvršiti neki drugi izračun na istim vrijednostima, proces bi bio nespretan. Morali biste duplicirati ovaj kôd, obraditi sve te ćelije i izvršiti novi izračun. Sve za jednu promjenu!

Evo boljeg primjera, koristeći niz. Prvo, kreirajmo niz.

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 za pokazivanje na element niza potrebno je samo zato što petlja For počinje od 1. Elementi niza moraju početi od 0.

Sada kada imate niz, vrlo je jednostavno obraditi sadržaj.

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

Ovaj primjer prolazi kroz cijeli niz redova ( UBound daje vam broj vrijednosti podataka u nizu), vrši izračun temperature, a zatim ga stavlja u drugi niz koji se naziva arrMyTemps .

4. Korištenje previše referenci

Bez obzira programirate li u punopravnom Visual Basicu ili VBA-i, za pristup određenim značajkama morate uključiti 'reference'.

Reference su nešto poput 'knjižnica' ispunjenih funkcionalnostima koje možete iskoristiti ako omogućite tu datoteku. Reference možete pronaći u prikazu za razvojne programere klikom na Alati u izborniku, a zatim kliknite na Reference .

Ono što ćete pronaći u ovom prozoru su sve trenutno odabrane reference za vaš trenutni VBA projekt.

Ovaj popis trebate provjeriti jer nepotrebne reference mogu rasipati resurse sustava. Ako ne koristite nikakvu manipulaciju XML datotekama, zašto bi onda Microsoft XML bio odabran? Ako ne komunicirate s bazom podataka, uklonite Microsoft DAO itd.

Ako niste sigurni čemu služe ove odabrane reference, pritisnite F2 i vidjet ćete Object Explorer. Pri vrhu ovog prozora možete odabrati biblioteku referenci za pregledavanje.

Nakon odabira vidjet ćete sve objekte i dostupne funkcije na koje možete kliknuti da biste saznali više.

Na primjer, kada kliknem na DAO knjižnicu, brzo postaje jasno da se ovdje radi o povezivanju i komunikaciji s bazama podataka.

Smanjivanje broja referenci koje koristite u svom programskom projektu ima smisla i pomoći će da vaša cjelokupna aplikacija radi učinkovitije.

wi fi nema valjanu IP konfiguraciju

Programiranje u Excelu VBA

Čitava ideja o pisanju koda u Excelu plaši mnoge ljude, ali ovaj strah doista nije potreban. Visual Basic for Applications vrlo je jednostavan jezik za učenje, a ako slijedite gore navedene uobičajene uobičajene prakse, osigurat ćete da je vaš kôd čist, učinkovit i lako razumljiv.

Ipak nemojte tu stati. Izgradite snažne temelje Excel vještina pomoću a VBA vodič za početnike . Zatim nastavite učiti o VBA i makronaredbama s resursima koji će vam pomoći u automatizaciji vaših proračunskih tablica.

Udio Udio Cvrkut E -pošta Isplati li se nadogradnja na Windows 11?

Windows je redizajniran. No, je li to dovoljno da vas uvjeri da prijeđete s Windows 10 na Windows 11?

Pročitajte Dalje
Povezane teme
  • Produktivnost
  • Programiranje
  • Programiranje
  • Visual Basic programiranje
  • Microsoft Excel
O autoru Anthony Grant(Objavljeno 40 članaka)

Anthony Grant je slobodni pisac koji se bavi programiranjem i softverom. On je glavni informatičar koji se bavi programiranjem, Excelom, softverom i tehnologijom.

Više od Anthonyja Granta

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu