Sådan bruges VBA-regnearksfunktioner i Excel 2016

Selvom VBA tilbyder et anstændigt udvalg af indbyggede funktioner, finder du måske ikke altid lige det, du har brug for. Heldigvis kan du også bruge de fleste af Excels regnearksfunktioner i dine VBA-procedurer. De eneste regnearksfunktioner, du ikke kan bruge, er dem, der har en tilsvarende VBA-funktion. For eksempel kan du ikke bruge Excels RAND-funktion (som genererer et tilfældigt tal), fordi VBA har en tilsvarende funktion: Rnd.

VBA gør Excels regnearksfunktioner tilgængelige via WorksheetFunction-objektet, som er indeholdt i Application-objektet. Her er et eksempel på, hvordan du kan bruge Excels SUM-funktion i en VBA-sætning:

Total = Application.WorksheetFunction.SUM(Range(“A1:A12”))

Du kan udelade enten Application-delen eller WorksheetFunction-delen af ​​udtrykket. I begge tilfælde finder VBA ud af, hvad du laver. Med andre ord virker disse tre udtryk alle nøjagtigt det samme:

Total = Application.WorksheetFunction.SUM(Range(“A1:A12”))
Total = ArbejdsarkFunction.SUM(Range(“A1:A12”))
Total = Application.SUM(Range(“A1:A12”))

Min personlige præference er at bruge WorksheetFunction-delen bare for at gøre det helt klart, at koden bruger en Excel-funktion.

Eksempler på arbejdsarkfunktioner

Her finder du ud af, hvordan du bruger regnearksfunktioner i dine VBA-udtryk.

Find den maksimale værdi i et område

Her er et eksempel, der viser, hvordan du bruger Excels MAX-regnearksfunktion i en VBA-procedure. Denne procedure viser den maksimale værdi i kolonne A i det aktive regneark:

Sådan bruges VBA-regnearksfunktioner i Excel 2016

Brug af en regnearksfunktion i din VBA-kode.

Sub ShowMax()
  Dim TheMax som dobbelt
  TheMax = WorksheetFunction.MAX(Range(“A:A”))
  MsgBox TheMax
Slut Sub

Du kan bruge MIN-funktionen til at få den mindste værdi i et område. Og som du måske forventer, kan du bruge andre regnearksfunktioner på lignende måde. For eksempel kan du bruge den store funktion til at bestemme k th-største værdi i et område. Følgende udtryk demonstrerer dette:

SecondHighest = ArbejdsarkFunction.LARGE(Range(“A:A”),2)

Bemærk, at funktionen LARGE bruger to argumenter. Det andet argument repræsenterer den k'te del — 2, i dette tilfælde (den næststørste værdi).

Beregning af afdrag på realkreditlån

Det næste eksempel bruger PMT-regnearksfunktionen til at beregne en realkreditbetaling. Tre variabler bruges til at gemme de data, der sendes til Pmt-funktionen som argumenter. En beskedboks viser den beregnede betaling.

Sub PmtCalc()
  Dim InRate As Double
  Dim LoanAmt As Double
  Dunkle perioder så lange
  IntRate = 0,0625 / 12
  Perioder = 30 * 12
  LånAmt = 150000
  MsgBox WorksheetFunction.PMT(IntRate, Perioder, -LoanAmt)
Slut Sub

Som det fremgår af følgende sætning, kan du også indsætte værdierne direkte som funktionsargumenter:

MsgBox WorksheetFunction.PMT(0,0625 /12, 360, -150000)

Brug af variabler til at gemme parametrene gør imidlertid koden nemmere at læse og ændre, hvis det er nødvendigt.

Brug af en opslagsfunktion

Følgende eksempel bruger VBA's InputBox- og MsgBox-funktioner, plus Excels VLOOKUP-funktion. Den beder om et varenummer og får derefter prisen fra en opslagstabel. Nedenfor er række A1:B13 navngivet Prisliste.

Sådan bruges VBA-regnearksfunktioner i Excel 2016

Sortimentet, der hedder PriceList, indeholder priser på dele.

Sub GetPrice()
  Dim PartNum Som Variant
  Dim Pris Som Dobbelt
  PartNum = InputBox(“Indtast varenummeret”)
  Sheets ("Priser"). Aktiver
  Pris = ArbejdsarkFunktion.VLOOKUP(DelNum, Range(“Prisliste”), 2, Falsk)
  MsgBox PartNum & " omkostninger " & Pris
Slut Sub

Sådan fungerer GetPrice-proceduren:

  • VBA's InputBox-funktion beder brugeren om et varenummer.

  • Varenummeret, som brugeren indtaster, tildeles til Variablen PartNum.

  • Den næste erklæring aktiverer arbejdsarket Priser, hvis det ikke allerede er det aktive ark.

  • Koden bruger VLOOKUP-funktionen til at finde varenummeret i tabellen.

  • Bemærk, at de argumenter, du bruger i denne sætning, er de samme som dem, du ville bruge med funktionen i en regnearksformel. Denne erklæring tildeler resultatet af funktionen til prisvariablen.

  • Koden viser prisen for delen via MsgBox-funktionen.

Denne procedure har ingen fejlhåndtering, og den mislykkes dybt, hvis du indtaster et ikke-eksisterende varenummer. (Prøv det.) Hvis dette var en faktisk applikation, der bruges i en egentlig virksomhed, vil du gerne tilføje nogle udsagn, der behandler fejl mere elegant.

Indtastning af regnearksfunktioner

Du kan ikke bruge dialogboksen Excel Paste Function til at indsætte en regnearksfunktion i et VBA-modul. Indtast i stedet sådanne funktioner på gammeldags måde: i hånden. Du kan dog bruge dialogboksen Indsæt funktion til at identificere den funktion, du vil bruge, og finde ud af dens argumenter.

Du kan også drage fordel af VBE's Auto List Members mulighed, som viser en rulleliste over alle regnearksfunktioner. Bare skriv Application.WorksheetFunction , efterfulgt af et punktum. Så ser du en liste over de funktioner, du kan bruge. Hvis denne funktion ikke virker, skal du vælge kommandoen VBE's Tools → Options, klikke på fanen Editor og sætte et flueben ud for Auto List Members.

Sådan bruges VBA-regnearksfunktioner i Excel 2016

Få en liste over regnearksfunktioner, som du kan bruge i din VBA-kode.

Mere om brug af regnearksfunktioner

Nybegyndere til VBA forveksler ofte VBAs indbyggede funktioner og Excels projektmappefunktioner. En god huskeregel er, at VBA ikke forsøger at genopfinde hjulet. For det meste dublerer VBA ikke Excel-regnearksfunktioner.

For de fleste regnearksfunktioner, der ikke er tilgængelige som metoder til WorksheetFunction-objektet, kan du bruge en tilsvarende indbygget VBA-operator eller funktion. For eksempel er MOD-regnearksfunktionen ikke tilgængelig i WorksheetFunction-objektet, fordi VBA har en tilsvarende: dens indbyggede Mod-operator.

Bundlinie? Hvis du skal bruge en funktion, skal du først afgøre, om VBA har noget, der opfylder dine behov. Hvis ikke, så tjek arbejdsarkfunktionerne. Hvis alt andet fejler, kan du muligvis skrive en brugerdefineret funktion ved at bruge VBA.


Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows

Sådan blokerer du Microsoft Word fra at åbne filer i skrivebeskyttet tilstand på Windows Microsoft Word åbner filer i skrivebeskyttet tilstand, hvilket gør det umuligt at redigere det? Bare rolig, metoderne er nedenfor

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes forkert udskrivning af Microsoft Word-dokumenter

Sådan rettes fejl ved udskrivning af forkerte Microsoft Word-dokumenter Fejl ved udskrivning af Word-dokumenter med ændrede skrifttyper, rodede afsnit, manglende tekst eller tabt indhold er ret almindelige. Men lad være

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Slet pen- og highlighter-tegninger på dine PowerPoint-dias

Hvis du har brugt pennen eller highlighteren til at tegne på dine PowerPoint-dias under en præsentation, kan du gemme tegningerne til næste præsentation eller slette dem, så næste gang du viser den, starter du med rene PowerPoint-dias. Følg disse instruktioner for at slette pen- og highlighter-tegninger: Sletning af linjer en ved […]

Indhold af stilbibliotek i SharePoint 2010

Indhold af stilbibliotek i SharePoint 2010

Style-biblioteket indeholder CSS-filer, Extensible Stylesheet Language-filer (XSL) og billeder, der bruges af foruddefinerede mastersider, sidelayouts og kontrolelementer i SharePoint 2010. For at finde CSS-filer i Style-biblioteket på et udgivelsessted: Vælg Site Actions→ View Alt webstedsindhold. Indholdet af webstedet vises. Style-biblioteket ligger i […]

Formater tal i tusinder og millioner i Excel-rapporter

Formater tal i tusinder og millioner i Excel-rapporter

Overvæld ikke dit publikum med gigantiske tal. I Microsoft Excel kan du forbedre læsbarheden af ​​dine dashboards og rapporter ved at formatere dine tal, så de vises i tusinder eller millioner.

Sådan deler og følger du SharePoint-websteder

Sådan deler og følger du SharePoint-websteder

Lær, hvordan du bruger SharePoints sociale netværksværktøjer, der lader enkeltpersoner og grupper kommunikere, samarbejde, dele og forbinde.

Sådan konverteres datoer til julianske formater i Excel

Sådan konverteres datoer til julianske formater i Excel

Julianske datoer bruges ofte i produktionsmiljøer som et tidsstempel og hurtig reference for et batchnummer. Denne type datokodning giver detailhandlere, forbrugere og serviceagenter mulighed for at identificere, hvornår et produkt blev fremstillet, og dermed produktets alder. Julianske datoer bruges også i programmering, militæret og astronomi. Forskellige […]

Sådan opretter du en Access Web App

Sådan opretter du en Access Web App

Du kan oprette en webapp i Access 2016. Så hvad er en webapp overhovedet? Nå, web betyder, at det er online, og app er kun en forkortelse for "applikation". En Custom Web App er en online databaseapplikation, der tilgås fra skyen ved hjælp af en browser. Du bygger og vedligeholder webappen i desktopversionen […]

Hurtig startlinje i SharePoint 2010

Hurtig startlinje i SharePoint 2010

De fleste sider i SharePoint 2010 viser en liste over navigationslinks på linjen Hurtig start langs venstre side af siden. Hurtig startlinjen viser links til fremhævet webstedsindhold såsom lister, biblioteker, websteder og udgivelsessider. Hurtigstartlinjen indeholder to meget vigtige links: Linket Alt webstedsindhold: […]

Hvad betyder Solver-fejlmeddelelserne i Excel?

Hvad betyder Solver-fejlmeddelelserne i Excel?

Ved simple problemer finder Solver i Excel som regel hurtigt de optimale Solver-variableværdier for objektivfunktionen. Men i nogle tilfælde har Solver problemer med at finde de Solver-variableværdier, der optimerer objektivfunktionen. I disse tilfælde viser Solver typisk en meddelelse eller en fejlmeddelelse, der beskriver eller diskuterer det problem, der […]