4 misstag som ska undvikas vid programmering av Excel -makron med VBA

4 misstag som ska undvikas vid programmering av Excel -makron med VBA

Microsoft excel är redan ett kapabelt dataanalysverktyg, men med möjligheten att automatisera repetitiva uppgifter med makron genom att skriva enkel kod i Visual Basic for Applications (VBA) är det mycket kraftfullare. Används felaktigt, men VBA kan orsaka problem.





Även om du inte är programmerare erbjuder VBA enkla funktioner som gör att du kan lägga till imponerande funktionalitet i dina kalkylblad.





Det spelar ingen roll om du är en VBA -guru som skapar instrumentpaneler i Excel, eller en nybörjare som skriver enkla skript som gör grundläggande cellberäkningar. Följ dessa enkla programmeringstekniker för att lära dig hur du skriver ren, buggfri kod.





Komma igång med VBA

VBA kan göra alla sorters snygga saker för dig. Från att skriva makron som ändrar blad till skicka e -post från ett Excel -kalkylblad med VBA -skript det finns väldigt få gränser för din produktivitet.

Om du inte har programmerat i VBA i Excel tidigare måste du aktivera utvecklarverktygen i ditt Excel -program. Den goda nyheten är att det är ganska enkelt att aktivera utvecklarverktygen. Gå bara till Fil > alternativ och då Anpassa band . Bara flytta Utvecklare fliken från den vänstra rutan över till höger.



Se till att den här fliken är aktiverad i kryssrutan och nu visas fliken Utvecklare i Excel -menyn.

Det enklaste sättet att komma in i kodredigeringsfönstret härifrån är bara att klicka på Visa kod knappen under Kontroller i utvecklarmenyn.





Du är nu redo att skriva VBA -kod! Denna flik är där du kommer åt VBA samt spela in makron i Excel . Nu när Excel är redo att fungera, låt oss gå igenom några vanliga misstag att undvika och sätten att förhindra dem.

1. Hemska variabelnamn

Nu när du är i kodfönstret är det dags att börja skriva VBA -kod. Det första viktiga steget i de flesta program, oavsett om det är i VBA eller något annat språk, är att definiera dina variabler. Att inte namnge variabler korrekt är ett av de vanligaste programmeringsfelen som nya utvecklare gör.





xbox one controller blinkar två gånger och stängs av

Under mina årtionden av kodskrivning har jag stött på många tankar när det gäller variabla namnkonventioner och lärt mig några regler på den hårda vägen. Här är några snabba tips för att skapa variabelnamn:

  • Gör dem så korta som möjligt.
  • Gör dem så beskrivande som möjligt.
  • Förord ​​dem med variabeln (booleskt, heltal, etc ...).

Här är ett exempel på en skärmdump från ett program som jag ofta använder för att ringa WMIC Windows -samtal från Excel för att samla in PC -information.

När du vill använda variablerna inuti en funktion i modulen eller objektet (jag kommer att förklara detta nedan) måste du deklarera den som en 'offentlig' variabel genom att förorda deklarationen med offentlig . Annars deklareras variabler genom att förorda dem med ordet Ingen .

Som du kan se, om variabeln är ett heltal, föregås den med int . Om det är en sträng, då sid . Detta är en personlig preferens som hjälper dig senare när du programmerar eftersom du alltid vet vilken typ av data variabeln har genom att titta på namnet.

Var noga med att namnge arken i din Excel -arbetsbok.

På det här sättet, när du hänvisar till bladnamnet i din Excel VBA -kod, hänvisar du till ett namn som är vettigt. I exemplet ovan har jag ett blad där jag hämtar nätverksinformation, så jag kallar arket 'Nätverk'. Varje gång jag vill referera till nätverksbladet kan jag göra det snabbt utan att leta upp vilket bladnummer det är.

2. Bryta istället för Looping

Ett av de vanligaste problemen som nyare VBA -programmerare har när de börjar skriva kod är att hantera slingor korrekt.

Looping är mycket vanligt i Excel eftersom du ofta bearbetar datavärden ner en hel rad eller en kolumn, så du måste loopa för att bearbeta dem alla.

Nya programmerare vill ofta bara bryta sig ur en slinga (VBA För slingor eller VBA Do While -slingor) direkt när ett visst villkor är sant.

Här är ett exempel på att denna metod används för att bryta en VBA -loop.

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

Nya programmerare tar detta tillvägagångssätt eftersom det är enkelt. Försök att undvika att uttryckligen bryta en loop.

Ofta är koden som kommer efter den ”pausen” viktig att bearbeta. Ett mycket renare och mer professionellt sätt att hantera förhållanden där du vill lämna en slinga halvvägs är bara att inkludera det exit -tillståndet i något som ett VBA While -uttalande.

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

Detta möjliggör ett logiskt flöde av din kod. Nu kommer koden att gå igenom och stoppa när den når 6. Inget behov av att inkludera besvärliga EXIT- eller BREAK-kommandon mitt i loop.

3. Använder inte matriser

Ett annat intressant misstag som nya VBA -programmerare gör är att försöka bearbeta allt inuti ett stort antal kapslade slingor som filtrerar ner genom rader och kolumner under beräkningsprocessen.

Detta kan också leda till stora prestandaproblem. Att gå igenom en kolumn och extrahera värdena varje gång är en dödande på din processor. Ett mer effektivt sätt att hantera långa listor med siffror är att använda en array.

Om du aldrig har använt en matris tidigare, var inte rädd. Tänk dig en matris som en isbitbricka med ett visst antal 'kuber' som du kan lägga information i. Kuberna är numrerade 1 till 12, och det är så du 'lägger' data i dem.

Du kan enkelt definiera en array bara genom att skriva Dim arrMyArray (12) som heltal .

hur man får ip -adress från e -post

Detta skapar ett 'fack' med 12 platser som du kan fylla på.

Så här kan en rad -looping -kod utan en array se ut:

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

I det här exemplet bearbetar koden ner genom varje cell i intervallet och utför temperaturberäkningen.

Om du någonsin vill utföra någon annan beräkning på samma värden skulle processen vara klumpig. Du måste duplicera den här koden, bearbeta genom alla dessa celler och utföra din nya beräkning. Allt för en förändring!

Här är ett bättre exempel med en array. Låt oss först skapa matrisen.

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

De x-1 för att peka på matriselementet är bara nödvändigt eftersom For -slingan börjar vid 1. Arrayelement måste börja vid 0.

Nu när du har matrisen är det väldigt enkelt att bearbeta innehållet.

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

Det här exemplet går igenom hela radmatrisen ( UBound ger dig antalet datavärden i arrayen), gör temperaturberäkningen och lägger den sedan till en annan array som heter arrMyTemps .

4. Använd för många referenser

Oavsett om du programmerar i fullvärdig Visual Basic eller VBA, måste du inkludera 'referenser' för att komma åt vissa funktioner.

Referenser är ungefär som 'bibliotek' fyllda med funktioner som du kan använda om du aktiverar den filen. Du hittar referenser i utvecklarvyn genom att klicka på Verktyg i menyn och klicka sedan på Referenser .

Det du hittar i det här fönstret är alla de för närvarande utvalda referenserna för ditt nuvarande VBA -projekt.

Du bör kontrollera den här listan eftersom onödiga referenser kan slösa bort systemresurser. Om du inte använder någon XML -filmanipulering, varför ska du då behålla Microsoft XML? Om du inte kommunicerar med en databas tar du bort Microsoft DAO, etc.

Om du inte är säker på vad dessa utvalda referenser gör trycker du på F2 så ser du objektutforskaren. Högst upp i det här fönstret kan du välja det referensbibliotek som du vill bläddra i.

När du väl har valt kommer du att se alla objekt och tillgängliga funktioner, som du kan klicka på för att lära dig mer om.

Till exempel, när jag klickar på DAO -biblioteket blir det snabbt klart att allt handlar om att ansluta till och kommunicera med databaser.

Att minska antalet referenser du använder i ditt programmeringsprojekt är bara bra och hjälper dig att göra din övergripande applikation mer effektiv.

titta på filmer online gratis stream ingen registrering

Programmering i Excel VBA

Hela idén med att faktiskt skriva kod i Excel skrämmer många människor, men denna rädsla är verkligen inte nödvändig. Visual Basic for Applications är ett mycket enkelt språk att lära sig, och om du följer de grundläggande vanliga metoderna som nämns ovan ser du till att din kod är ren, effektiv och lätt att förstå.

Stanna inte där dock. Bygg en stark grund för Excel -färdigheter med en VBA -handledning för nybörjare . Fortsätt sedan lära dig mer om VBA och makron med resurser som hjälper dig att automatisera dina kalkylblad.

Dela med sig Dela med sig Tweet E-post Är det värt att uppgradera till Windows 11?

Windows har gjorts om. Men är det tillräckligt för att övertyga dig om att byta från Windows 10 till Windows 11?

Läs Nästa
Relaterade ämnen
  • Produktivitet
  • Programmering
  • Programmering
  • Visual Basic programmering
  • Microsoft excel
Om författaren Anthony Grant(40 artiklar publicerade)

Anthony Grant är frilansande skribent som täcker programmering och programvara. Han är en datavetenskap som sysslar med programmering, Excel, programvara och teknik.

Mer från Anthony Grant

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera