VBA-operatörer och inbyggda funktioner

Excel VBA uttalanden

När du skriver VBA-kod i Excel används en uppsättning inbyggda operatörer vid varje steg. Dessa operatorer är indelade i matematiska, sträng-, jämförelse- och logiska operatorer. Därefter kommer vi att titta på varje grupp av operatörer i detalj.

Matematiska operatörer

De viktigaste VBA matematiska operatorerna listas i tabellen nedan.

Den högra kolumnen i tabellen visar standardoperatörens prioritet i avsaknad av parenteser. Genom att lägga till parenteser till ett uttryck kan du ändra ordningen i vilka VBA-satser exekveras som du vill.

OperatörHandlingprioritet

(1 – högst; 5 – lägst)

^exponentieringsoperator1
*multiplikationsoperator2
/divisionsoperatör2
Division utan rest – returnerar resultatet av att dividera två tal utan rest. Till exempel, 74 kommer att returnera resultatet 13
ModModulo (resterande) operator – returnerar resten efter att ha dividerat två tal. Till exempel, 8 Mot 3 kommer att returnera resultatet 2.4
+Tilläggsoperatör5
-subtraktionsoperatör5

Strängoperatörer

Den grundläggande strängoperatorn i Excel VBA är sammanlänkningsoperatorn & (sammanfoga):

OperatörHandling
&sammanlänkningsoperatör. Till exempel uttrycket "A" och "B" kommer att returnera resultatet AB.

Jämförelseoperatörer

Jämförelseoperatorer används för att jämföra två tal eller strängar och returnera ett booleskt värde av typen Boolean (Sant eller falskt). De viktigaste Excel VBA-jämförelseoperatörerna listas i denna tabell:

OperatörHandling
=Lika
<>Inte jämnlikt
<Mindre
>Больше
<=Mindre än eller lika
>=Större än eller lika med

logiska operatorer

Logiska operatorer, som jämförelseoperatorer, returnerar ett booleskt värde av typen Boolean (Sant eller falskt). De huvudsakliga logiska operatorerna för Excel VBA listas i tabellen nedan:

OperatörHandling
Ochkonjunktion operation, logisk operator И. Till exempel uttrycket A och B kommer att återvända Sant, Om A и B båda är lika Sant, annars återvända Falsk.
OrDisjunction operation, logisk operator OR. Till exempel uttrycket A eller B kommer att återvända Sant, Om A or B är jämlika Sant, och kommer tillbaka Falsk, Om A и B båda är lika Falsk.
InteNegationsoperation, logisk operator INTE. Till exempel uttrycket Inte A kommer att återvända Sant, Om A lika Falsk, eller återvända Falsk, Om A lika Sant.

Tabellen ovan listar inte alla logiska operatorer som är tillgängliga i VBA. En komplett lista över logiska operatorer finns i Visual Basic Developer Center.

Inbyggda funktioner

Det finns många inbyggda funktioner tillgängliga i VBA som kan användas när man skriver kod. Nedan listas några av de mest använda:

Funktion Handling
AbsReturnerar det absoluta värdet av det givna talet.

Exempelvis:

  • Abs (-20) returnerar värdet 20;
  • Abs(20) returnerar värdet 20.
före KristusReturnerar ANSI-tecknet som motsvarar parameterns numeriska värde.

Exempelvis:

  • Chr(10) returnerar en radbrytning;
  • Chr(97) returnerar ett tecken a.
DatumReturnerar aktuellt systemdatum.
Lägg till datumLägger till ett angivet tidsintervall till det givna datumet. Funktionssyntax:

DateAdd(интервал, число, дата)

Var är argumentet intervall bestämmer vilken typ av tidsintervall som läggs till det givna datum i det belopp som anges i argumentationen antal.

Argument intervall kan ta ett av följande värden:

IntervallVärde
yyyyår
qfjärdedel
mmånad
ydagen på året
ddag
wveckodag
wwvecka
htimme
nminut
s2:a

Exempelvis:

  • Lägg till datum(«d», 32, «01/01/2015») lägger till 32 dagar till datumet 01-01-2015 och returnerar därmed datumet 02-02-2015.
  • DateAdd(«ww», 36, «01/01/2015») lägger till 36 veckor till datumet 01-01-2015 och returnerar datumet 09-09-2015.
DateDiffBeräknar antalet angivna tidsintervall mellan två givna datum.

Exempelvis:

  • DateDiff(«d», «01/01/2015», «02/02/2015») beräknar antalet dagar mellan 01-01-2015 och 02-02-2015, returnerar 32.
  • DateDiff(«ww», «01/01/2015», «03/03/2016») beräknar antalet veckor mellan 01-01-2015 och 03-03-2016, returnerar 61.
DagReturnerar ett heltal som motsvarar dagen i månaden på det givna datumet.

Exempelvis: Dag(«29/01/2015») returnerar siffran 29.

timmeReturnerar ett heltal som motsvarar antalet timmar vid den givna tidpunkten.

Exempelvis: Hour(«22:45:00») returnerar siffran 22.

InStrDet tar ett heltal och två strängar som argument. Returnerar positionen för förekomsten av den andra strängen inom den första, och startar sökningen på positionen som ges av ett heltal.

Exempelvis:

  • InStr(1, "Här är sökordet", "ord") returnerar siffran 13.
  • InStr(14, "Här är sökordet, och här är ett annat sökord", "ord") returnerar siffran 38.

Notera: Talargumentet kanske inte anges, i vilket fall sökningen startar från det första tecknet i strängen som anges i funktionens andra argument.

IntReturnerar heltalsdelen av det givna talet.

Exempelvis: Int(5.79) ger resultat 5.

IsdateReturer Santom det angivna värdet är ett datum, eller Falsk – om datumet inte är det.

Exempelvis:

  • IsDate(«01/01/2015») återgår Sant;
  • IsDate(100) återgår Falsk.
IsErrorReturer Santom det angivna värdet är ett fel, eller Falsk – om det inte är ett fel.
SaknasNamnet på ett valfritt procedurargument skickas som ett argument till funktionen. Saknas återgår Santom inget värde skickades för procedurargumentet i fråga.
Är NumeriskReturer Santom det angivna värdet kan behandlas som ett tal, returneras annars Falsk.
VänsterReturnerar det angivna antalet tecken från början av den givna strängen. Funktionens syntax är så här:

Left(строка, длина)

var linje är den ursprungliga strängen, och längd är antalet tecken som ska returneras, räknat från början av strängen.

Exempelvis:

  • Vänster(“abvgdejziklmn”, 4) returnerar strängen "abcg";
  • Vänster(“abvgdejziklmn”, 1) returnerar strängen "a".
LenReturnerar antalet tecken i en sträng.

Exempelvis: Len(“abcdej”) returnerar siffran 7.

MånadReturnerar ett heltal som motsvarar månaden för det givna datumet.

Exempelvis: Månad(«29/01/2015») returnerar värdet 1.

MidReturnerar det angivna antalet tecken från mitten av den givna strängen. Funktionssyntax:

Mitten(linje, starta, längd)

var linje är originalsträngen starta – positionen för början av strängen som ska extraheras, längd är antalet tecken som ska extraheras.

Exempelvis:

  • Mid(“abvgdejziklmn”, 4, 5) returnerar strängen "var";
  • Mid(“abvgdejziklmn”, 10, 2) returnerar strängen "cl".
MinutReturnerar ett heltal som motsvarar antalet minuter under den givna tiden. Exempel: Minute(«22:45:15») returnerar värdet 45.
NuReturnerar det aktuella systemets datum och tid.
HögerReturnerar det angivna antalet tecken från slutet av den givna strängen. Funktionssyntax:

Höger(linje, längd)

Var linje är den ursprungliga strängen, och längd är antalet tecken som ska extraheras, räknat från slutet av den givna strängen.

Exempelvis:

  • Höger(«abvgdezhziklmn», 4) returnerar strängen "clmn";
  • Höger(«abvgdezhziklmn», 1) returnerar strängen "n".
AndraReturnerar ett heltal som motsvarar antalet sekunder under den givna tiden.

Exempelvis: Andra(«22:45:15») returnerar värdet 15.

sqrReturnerar kvadratroten av det numeriska värdet som skickas i argumentet.

Exempelvis:

  • Sqr(4) returnerar värdet 2;
  • Sqr(16) returnerar värdet 4.
TidReturnerar aktuell systemtid.
UboundReturnerar den upphöjda skriften för den angivna matrisdimensionen.

Notera: För flerdimensionella arrayer kan ett valfritt argument vara indexet för vilken dimension som ska returneras. Om det inte anges är standardvärdet 1.

årReturnerar ett heltal som motsvarar året för det givna datumet. Exempel: År («29/01/2015») returnerar värdet 2015.

Den här listan innehåller bara ett urval av de mest använda inbyggda Excel Visual Basic-funktionerna. En uttömmande lista över VBA-funktioner som är tillgängliga för användning i Excel-makron finns i Visual Basic Developer Center.

Kommentera uppropet