Excel VBA har adskillige indbyggede funktioner. Nogle af disse Excel VBA- funktioner tager argumenter, og nogle gør ikke.
Eksempler på Excel VBA-funktioner
Her finder du et par eksempler på brug af VBA-funktioner i kode. I mange af disse eksempler viser MsgBox-funktionen en værdi i en meddelelsesboks. Ja, MsgBox er en VBA-funktion - en ret usædvanlig, men en funktion ikke desto mindre. Denne nyttige funktion viser en meddelelse i en dialogboks og returnerer også en værdi.
Viser systemets dato eller klokkeslæt
Det første eksempel bruger VBA's Dato-funktion til at vise den aktuelle systemdato i en meddelelsesboks:
Sub ShowDate()
MsgBox "I dag er: " & Dato
Slut Sub
Bemærk, at datofunktionen ikke bruger et argument. I modsætning til regnearksfunktioner kræver en VBA-funktion uden argument ikke et tomt sæt parenteser. Faktisk, hvis du indtaster et tomt sæt parenteser, fjerner VBE dem omgående.
Brug funktionen Tid for at få systemtiden. Og hvis du vil have det hele, skal du bruge Nu-funktionen til at returnere både dato og klokkeslæt.
At finde en snorlængde
Den følgende procedure bruger funktionen VBA Len, som returnerer længden af en tekststreng. Len-funktionen tager et argument: strengen. Når du udfører denne procedure, viser beskedboksen dit navn og antallet af tegn i dit navn.
Sub GetLength()
Dim mit navn som streng
Dim strenglængde så lang
Mit Navn = Application.UserName
StringLength = Len(Mit Navn)
MsgBox MyName & " har " & StringLength & " tegn."
Slut Sub
Beregning af længden af dit navn.
Excel har også en LEN-funktion, som du kan bruge i dine regnearksformler. Excel-versionen og VBA-funktionen fungerer på samme måde.
Viser navnet på en måned
Den følgende procedure bruger funktionen Månedsnavn, som returnerer navnet på en måned. MonthName bruger ét argument: et heltal mellem 1 og 12.
Sub ShowMonthName()
Dæmp denne måned så længe
Denne måned = måned (dato)
MsgBox MonthName (This Month)
Slut Sub
Denne procedure bruger månedsfunktionen til at få den aktuelle måned (som en værdi), og denne værdi tildeles variablen ThisMonth. Funktionen MonthName konverterer derefter værdien til tekst. Så hvis du kører denne procedure i april, viser beskedboksen teksten april.
Faktisk er ThisMonth-variablen ikke påkrævet. Du kan få den samme effekt med dette udtryk, som bruger tre VBA-funktioner:
Månedsnavn(måned(dato))
Her overføres den aktuelle dato som et argument til funktionen Måned, som returnerer en værdi, der er sendt som et argument til funktionen Månedsnavn.
Bestemmelse af en filstørrelse
Den følgende underprocedure viser størrelsen, i bytes, af den eksekverbare Excel-fil. Den finder denne værdi ved at bruge FileLen-funktionen:
Sub GetFileSize()
Dim TheFile As String
TheFile = "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE"
MsgBox FileLen(TheFile)
Slut Sub
Bemærk, at denne rutine hardkoder filnavnet (det vil sige udtrykkeligt angiver stien). Det er ikke en god idé. Filen er muligvis ikke på C-drevet, eller Excel-mappen kan have et andet navn. Følgende erklæring viser en bedre tilgang:
TheFile = Application.Path & "\EXCEL.EXE"
Sti er en egenskab for applikationsobjektet. Det returnerer blot navnet på den mappe, hvor applikationen (det vil sige Excel) er installeret (uden en efterfølgende skråstreg).
Identifikation af typen af et valgt objekt
Følgende procedure bruger TypeName-funktionen, som returnerer typen af markeringen på regnearket (som en streng):
Sub ShowSelectionType()
Dim SelType As String
SelType = Typenavn(Udvalg)
MsgBox SelType
Slut Sub
Valget kan være et område, et billede, et rektangel, et diagramområde eller enhver anden type objekt, der kan vælges.
TypeName-funktionen er meget alsidig. Du kan også bruge denne funktion til at bestemme datatypen for en variabel.
Excel VBA-funktioner, der gør mere end at returnere en værdi
Nogle få VBA-funktioner går ud over call of duty. I stedet for blot at returnere en værdi, har disse funktioner nogle nyttige bivirkninger.
VBA-funktioner med nyttige sidefordele
Fungere |
Hvad det gør |
MsgBox |
Viser en praktisk dialogboks med en besked og knapper. Funktionen returnerer en kode, der identificerer, hvilken knap brugeren klikker på. |
Inputboks |
Viser en simpel dialogboks, der beder brugeren om noget input. Funktionen returnerer, hvad end brugeren indtaster i dialogboksen. |
Skal |
Udfører et andet program. Funktionen returnerer opgave-id'et (en unik identifikator) for det andet program (eller en fejl, hvis funktionen ikke kan starte det andet program). |
Opdagelse af Excel VBA-funktioner
Hvordan finder du ud af, hvilke funktioner VBA tilbyder? Godt spørgsmål. Den bedste kilde er Excel VBA-systemet . En anden måde er at skrive VBA , efterfulgt af et punktum. Du får en liste over varer. Dem med et grønt ikon er funktioner. Hvis denne funktion ikke virker, skal du vælge VBE's Værktøjer → Indstillinger, klikke på fanen Editor og sætte et flueben ud for Automatisk listemedlemmer.
En måde at vise en liste over VBA-funktioner på.
Der er over 140 forskellige funktioner tilgængelige i VBA. Nogle er så specialiserede og obskure, at du aldrig får brug for dem. Andre er dog ret nyttige til mange applikationer.
Excel VBA's mest nyttige indbyggede funktioner
Fungere |
Hvad det gør |
Abs |
Returnerer et tals absolutte værdi |
Array |
Returnerer en variant, der indeholder en matrix |
Vælge |
Returnerer en værdi fra en liste over elementer |
Chr |
Konverterer en ANSI-værdi til en streng |
CurDir |
Returnerer den aktuelle sti |
Dato |
Returnerer den aktuelle systemdato |
DateAdd |
Returnerer en dato, hvortil et angivet tidsinterval er blevet tilføjet - for eksempel en måned fra en bestemt dato |
DatoDiff |
Returnerer et heltal, der viser antallet af specificerede tidsintervaller mellem to datoer - for eksempel antallet af måneder mellem nu og din fødselsdag |
DatoPart |
Returnerer et heltal, der indeholder den angivne del af en given dato - for eksempel en dato på året |
DatoSerial |
Konverterer en dato til et serienummer |
DatoVærdi |
Konverterer en streng til en dato |
Dag |
Returnerer dagen i måneden fra en datoværdi |
Dir |
Returnerer navnet på en fil eller et bibliotek, der matcher et mønster |
Err |
Returnerer fejlnummeret for en fejltilstand |
Fejl |
Returnerer den fejlmeddelelse, der svarer til et fejlnummer |
Exp |
Returnerer basis for den naturlige logaritme (e) hævet til en potens |
FileLen |
Returnerer antallet af bytes i en fil |
Rette op |
Returnerer et tals heltalsdel |
Format |
Viser et udtryk i et bestemt format |
GetSetting |
Returnerer en værdi fra Windows-registreringsdatabasen |
Time |
Returnerer timedelen af en tid |
Inputboks |
Viser en boks for at bede en bruger om input |
InStr |
Returnerer positionen af en streng i en anden streng (tæller fra starten) |
InStrRev |
Returnerer positionen af en streng i en anden streng (tæller fra slutningen) |
Int |
Returnerer heltalsdelen af et tal |
IsArray |
Returnerer True, hvis en variabel er en matrix |
IsDate |
Returnerer Sand, hvis et udtryk er en dato |
Er tom |
Returnerer True, hvis en variabel ikke er blevet initialiseret |
ErError |
Returnerer Sand, hvis et udtryk er en fejlværdi |
Mangler |
Returnerer True, hvis et valgfrit argument ikke blev videregivet til en procedure |
IsNull |
Returnerer True, hvis et udtryk ikke indeholder gyldige data |
ErNumerisk |
Returnerer Sand, hvis et udtryk kan evalueres som et tal |
LBound |
Returnerer det mindste sænkede skrift for en dimension af en matrix |
LCase |
Returnerer en streng konverteret til små bogstaver |
Venstre |
Returnerer et angivet antal tegn fra venstre for en streng |
Len |
Returnerer antallet af tegn i en streng |
Midt |
Returnerer et specificeret antal tegn fra en streng |
Minut |
Returnerer minutterdelen af en tidsværdi |
Måned |
Returnerer måneden fra en datoværdi |
MsgBox |
Viser en beskedboks og returnerer (valgfrit) en værdi |
Nu |
Returnerer den aktuelle systemdato og -klokkeslæt |
Erstatte |
Erstatter en understreng i en streng med en anden understreng |
RGB |
Returnerer en numerisk RGB-værdi, der repræsenterer en farve |
Ret |
Returnerer et angivet antal tegn fra højre for en streng |
Rnd |
Returnerer et tilfældigt tal mellem 0 og 1 |
Anden |
Returnerer sekunderdelen af en tidsværdi |
Skal |
Kører et eksekverbart program |
Plads |
Returnerer en streng med et angivet antal mellemrum |
Dele |
Opdeler en streng i dele ved hjælp af et afgrænsende tegn |
Sqr |
Returnerer et tals kvadratrod |
Snor |
Returnerer et gentaget tegn eller en streng |
Tid |
Returnerer den aktuelle systemtid |
Timer |
Returnerer antallet af sekunder siden midnat |
TimeSerial |
Returnerer tiden for en specificeret time, minut og sekund |
Tidsværdi |
Konverterer en streng til et tidsserienummer |
Trimme |
Returnerer en streng uden indledende eller efterfølgende mellemrum |
Typenavn |
Returnerer en streng, der beskriver en variabels datatype |
Ubundet |
Returnerer den største tilgængelige sænkning for et arrays dimension |
UCase |
Konverterer en streng til store bogstaver |
Val |
Returnerer tallene i en streng |
Ugedag |
Returnerer et tal, der repræsenterer en dag i ugen |
År |
Returnerer året fra en datoværdi |
For fuldstændige detaljer om en bestemt Excel VBA-funktion skal du skrive funktionsnavnet i et VBA-modul, flytte markøren hvor som helst i teksten og trykke på F1.