Innehållsförteckning:
Video: HUR ANVÄNDER MAN?! 2024
En uppgiftstagning är ett VBA-ställe som tilldelar resultatet av ett uttryck till en variabel eller ett objekt. Excels hjälpsystem definierar termen uttryck som
"… en kombination av sökord, operatörer, variabler och konstanter som ger en sträng, ett tal eller ett objekt. Ett uttryck kan användas för att utföra en beräkning, manipulera tecken eller testa data. "
Mycket av ditt arbete i VBA innebär att utveckla (och felsöka) uttryck. Om du vet hur man skapar formler i Excel har du inga problem med att skapa uttryck. Med ett arbetsbladformel visar Excel resultatet i en cell. Ett VBA-uttryck, å andra sidan, kan tilldelas en variabel.
Exempel på uppdragsuppsättning
I exempelsättningsexemplen som följer följer uttrycken till höger om lika tecknet:
x = 1 x = x + 1 x = (y * 2) / (z * 2) HouseCost = 375000 FileOpen = True Range ("TheYear"). Värde = 2016
Uttryck kan vara så komplicerat som du behöver dem att vara; använd linjens fortsättningskaraktär (ett mellanslag följt av ett understreck) för att göra långa uttryck enklare att läsa.
Ofta används uttrycksfunktioner: VBA: s inbyggda funktioner, Excels kalkylbladsfunktioner eller funktioner som du utvecklar med VBA.
Om det likartade tecknet
Som du kan se i föregående exempel använder VBA likhetsskylten som tilldelningsoperatör. Du är förmodligen van att använda ett likatecken som en matematisk symbol för jämlikhet. Därför kan ett uppdragsutdrag som följande leda till att du höjer dina ögonbryn:
z = z + 1
I vilket galna universum är z lika med sig själv plus 1? Svar: Inget känt universum. I det här fallet ökar tilldelningsuppsättningen (när den körs) värdet av z med 1. Så om z är 12, gör exekveringen z lika med 13. Kom bara ihåg att ett uppdrag använder lika tecknet som operatör, inte en symbol av jämlikhet.
Smidiga operatörer
Operatörer spelar stora roller i VBA. Förutom likabehandlingsoperatören tillhandahåller VBA flera operatörer. Dessa ska vara kända för dig eftersom de är samma operatörer som används i kalkylblad formler (förutom Mod operatören).
Funktion | Operatörsymbol |
---|---|
Tillsats | + |
Multiplikation | * |
Division | / |
Subtraktion | - |
Exponentiering | ^ < Strängkonsentation |
& | Integreringsdelning (resultatet är alltid ett heltal) |
Modulräkning (returnerar resten av en division | |
-operation)
Mod |
När du skriver en Excel-formel, du gör modulo aritmetik genom att använda MOD-funktionen.Till exempel returnerar följande formel 2 (resten när du delar 12 med 5): |
= MOD (12, 5)
I VBA används Mod-operatören så här (och z har ett värde av 2):
z = 12 Mod 5
Termen
sammankoppling är programmeraren talar för att "gå ihop. "Om du sluter samman strängar kombinerar du strängar för att skapa en ny och förbättrad sträng. VBA ger också en komplett uppsättning logiska operatörer. Av dessa, Inte, Och, Och Eller används oftast.
Operatör
Vad det gör | Ej |
---|---|
Utför en logisk negation på ett uttryck | Och |
Utför en logisk konjunktion på två uttryck | Eller |
Utför en logisk disjunction på två uttryck | Xor |
Utför en logisk uteslutning på två uttryck | Eqv |
Utför en logisk ekvivalens på två uttryck | Imp |
Utför en logisk implikation på två uttryck | Förrangsordningen för operatörer i VBA är exakt samma som i Excel-formler. Exponentiering har högsta prioritet. Multiplikation och delning kommer därefter, följt av addition och subtraktion. Du kan använda parenteser för att ändra den naturliga prioritetsordningen, vilket gör vad som helst som sitter i parentes före någon operatör. Ta en titt på denna kod: |
x = 3 y = 2 z = x + 5 * y
När den föregående koden exekveras, vad är värdet av z? Om du svarade 13 får du en guldstjärna som visar att du förstår begreppet operatörsförrang. Om du svarade 16, läs detta: Multiplikationsoperationen (5 * y) utförs först och resultatet läggs till i x.
Många programmerare brukar använda parentes även när de inte är nödvändiga. I själva verket kan det senaste uppdragsuppsättningen skrivas så här:
z = x + (5 * y)
Var inte blyg om att använda parenteser, även om de inte behövs - speciellt om man gör så gör din kod lättare att förstå. VBA bryr sig inte om du använder extra parentes.