10 Excel VBA Råd og Don'ts

Her finner du noen råd du bør ta hensyn til når du begynner å utvikle dine egne Excel VBA-løsninger. Etter disse retningslinjene er ikke noe universalmiddel for å holde deg ut av (programmering) problemer, men å følge dem kan hjelpe deg å unngå fallgruvene som andre har snublet over.

Må fortelle om alle variablene

Hvor praktisk det er : Bare begynne å skrive VBA-kode uten å måtte gå gjennom den kjedelige ork å erklære hver variabel du vil bruke. . Selv om Excel lar deg bruke uanmeldte variabler, gjør dette er rett og slett å be om trøbbel

Den første bud VBA programmering bør være dette:

Du skal erklære hver variabel

Hvis du mangler selvdisiplin, legge til en "Option Explicit" statement på toppen av modulene. På den måten vil koden ikke selv kjøre hvis den inneholder en eller flere uanmeldte variabler. Ikke erklære alle variabler har bare én fordel: Du sparer noen sekunder. Men ved hjelp av uanmeldte variablene vil til slutt komme tilbake å hjemsøke deg.

Du må ikke forveksle passord med sikkerhet

Bare passordbeskytte VBA-prosjekt, og du er trygg, ikke sant? Feil.

Ved hjelp av en VBA passord kan holde de fleste vanlige brukere fra å vise koden. Men hvis noen egentlig
ønsker å sjekke det, vil han finne ut hvordan å knekke passordet.

Ergo? Hvis du absolutt, positivt må holde koden hemmelig, er Excel ikke det beste valget for en utviklingsplattform.

Må rydde opp i koden

Etter at appen fungerer tilfredsstillende du bør rydde opp. Kode rengjøring oppgaver omfatter følgende:

Sørg for at hver variabel er deklarert

Kontroller at alle linjene er innrykket riktig så kodestruktur er tydelig
..
Fjern eventuelle debugging hjelpemidler som MsgBox uttalelser fra Debug.Print uttalelser.

Gi nytt navn til noen variabler dårlig navngitt. For eksempel, hvis du bruker variabelen myVariable, det er en ganske god sjanse for at du kan gjøre variabelnavnet mer beskrivende. Du vil takke deg selv senere.

  • Dine moduler sannsynligvis har noen "test" prosedyrer som du skrev mens du prøver å finne noe ut. De har tjent sitt formål, så slette dem.
  • Legg til kommentarer slik at du forstår hvordan det fungerer koden når du besøker den seks måneder fra nå.
  • Lag at alt er stavet riktig - særlig tekst i UserForms og meldingsbokser

    Se etter overflødig kode.. Hvis du har to eller flere prosedyrer som har identiske blokker av kode, vurdere å opprette en ny prosedyre som andre prosedyrer kan ringe.

    Ikke legg alt i en prosedyre

    Vil du gjøre en uforståelig program? En effektiv måte å oppnå dette er å legge all koden inni en fin stor prosedyre. Hvis du noensinne se dette programmet igjen for å gjøre endringer, er du nødt til å gjøre feil og introdusere noen fine utseende bugs.

    Ser du problemet? Løsningen er modulær kode. Splitte programmet i mindre biter, med hver klump designet for å utføre en bestemt oppgave. Når du plukker opp denne vanen, vil du finne at det å skrive bug-fri kode er enklere enn noen gang.

    Gjør vurdere annen programvare

    Excel er en utrolig allsidig program, men det er ikke egnet for alt. Når du er klar til å påta seg et nytt prosjekt, ta litt tid til å vurdere alle alternativer. For å omskrive et gammelt ordtak: "Når alt du vet er Excel VBA, alt ser ut som en VBA-makro."

    Ikke anta at alle gjør makroer

    Som du vet, gjør at du Excel å åpne en arbeidsbok med sine makroer er deaktivert. Faktisk er det nesten som om designerne av nyere versjoner av Excel vil
    brukere å deaktivere makroer.

    Aktivere makroer når du åpner en arbeidsbok fra en ukjent kilde er ikke en god idé, for kurs. Så du trenger å vite brukerne. I enkelte bedriftsmiljøer, alle Microsoft Office-makroer er deaktivert, og brukeren ikke har noe valg i saken.
    En ting å vurdere er å legge en digital signatur til arbeidsbøker som du distribuerer til andre. På den måten kan brukeren være trygg på at arbeidsbøker faktisk kommer fra deg, og at de ikke har blitt endret. Se i hjelpesystemet for mer informasjon om digitale signaturer.

    Får vane å eksperimentere

    Sette opp enkle eksperimenter er nesten alltid mye mer effektivt enn å innlemme en ny idé til den eksisterende koden uten forstå hva disse eksperimentene bringe.

    ikke anta at koden vil fungere med andre Excel-versjoner

    Foreløpig minst fem versjoner av Excel ofte brukes over hele verden. Når du oppretter en Excel-app, har du absolutt ingen garanti for at det vil fungere feilfritt i eldre versjoner eller nyere versjoner. I noen tilfeller vil inkompatibilitet være åpenbar. Men du vil også finne at ting som skal arbeide med en tidligere versjon ikke fungerer

    Excel har et hendig kompatibilitetskontroll (velg Fil → Info → Se etter problemer og rarr; Sjekk Kompatibilitet)., Men det bare sjekker arbeidsboken og ignorerer VBA-kode. Den eneste måten å være sikker på at søknaden din fungerer sammen med andre enn den du laget den med er å teste det i disse versjonene versjoner.

    Må holde brukerne i tankene

    Hvis du utvikle apps for andre, er din jobb vanskeligere, fordi du ikke kan gjøre de samme typer forutsetninger som du gjør når du utvikler for deg selv.

    for eksempel kan du være mer lax med feilbehandling hvis du er eneste brukeren. Hvis en feil dukker opp, vil du ha en ganske god idé hvor du skal lete, slik at du kan fikse det. Hvis noen andre bruker din app og den samme feilen vises, vil han eller hun være ute av lykken. Og når du jobber med din egen søknad, kan du vanligvis få av uten instruksjoner.
    Du må forstå ferdighetsnivået til de som skal bruke arbeidsbøkene dine og prøve å forutse problemer som de måtte ha. Prøv å forestille deg selv som ny bruker på søknaden din, og identifisere alle områder som kan skape forvirring eller problemer.

    Ikke glem backup

    Ingenting er mer nedslående enn en harddisk krasjer uten en sikkerhetskopi. Hvis du arbeider med et viktig prosjekt, spør deg selv et enkelt spørsmål: "Hvis datamaskinen min dør i kveld, hva vil jeg ha mistet" Hvis svaret er mer enn noen få timer med arbeid, må du ta en nærmere titt på data back-up prosedyren. Du har en data back-up prosedyre, ikke sant?