Vba logiskt eller. VBA-operatörer och inbyggda funktioner. Felaktig överföring Korrekt överföring

Parameternamn Menande
Artikelns ämne: VBA-operatörer
Rubrik (tematisk kategori) Programmering

VBA är ett operatörsspråk. Detta betyder att dess program (procedurer eller funktioner) representerar sekvenser av satser.

På VBA-språket kan vi urskilja följande grupper operatörer:

1. deklarativa operatorer avsedda att beskriva objekt som programmet fungerar med (typer av variabler, konstanter och matriser, etc.),

2. kommentar uttalanden,

3. operatorer för att tilldela och ändra objektvärden,

4. Operatörer som kontrollerar beräkningarnas framsteg (villkorlig, cyklisk, övergång).

I denna kurs Grundläggande operatörer kommer att övervägas, och några, till exempel cykliska, kommer att presenteras i tre typer, men eleverna bör bara behärska en, som den mest förståeliga för användning.

Kommentarsoperatör

Kommentarer påverkar inte exekveringen av programmet, men är nödvändiga för att förstå algoritmen. Eftersom program uppdateras många gånger är det viktigt att använda kommentarer för att hjälpa dig komma ihåg algoritmen och ändra den på rätt sätt.

Varje rad med programtext kan avslutas med en kommentar. En kommentar i VBA börjar med en apostrof (") och inkluderar all text till höger om raden.

T.ex,

Vikt= vikt+z "Viktökning värde=vikt*pris "Nykostnad

Uppdragsoperatör

Tilldelningsoperatorer är det huvudsakliga sättet att ändra programtillstånd (variabelvärden). Det är en konstruktion som förbinder =-tecknet mellan en variabel (vänster sida) och ett uttryck (höger sida). Ett uttryck består av operander (namn på variabler, konstanter, namn på standardfunktioner) och symboler för operationer (aritmetiska, logiska, strängar, jämförelser). Meningen med denna operator är att den vänstra sidan tilldelas värdet på den högra sidan.

Kontrollutlåtanden

Uppsättningen av VBA-kontrollsatser motsvarar strukturerat språk programmering. I denna uppsättning ingår villkors- och loop-satser, vilket gör att du kan organisera beräkningsprocessen på ett tillförlitligt och effektivt sätt.

Villkorligt uttalande If Then Else End If

Detta är en vanlig beräkningskontrolloperatör i programmeringsspråk som låter dig välja och utföra åtgärder baserat på sanningen i ett visst tillstånd.

VBA-operatörer - koncept och typer. Klassificering och funktioner i kategorin "VBA-operatörer" 2017, 2018.

  • - Livs- och kvantitetsbevarande operatörer

    Denna kategori av Dial i TRIZ presenteras som "princip nr. 34, kassering och regenerering av delar: a) En del av ett föremål som har uppfyllt sitt syfte eller har blivit onödigt måste kasseras (upplösas, förångas, etc.) eller modifieras. direkt under arbetets gång. b)... .


  • - VBA språkelement

    Ris. 12.1 Placerade objekt på formuläret 6. Genom att aktivera varje objekt separat på formuläret ställer vi in ​​dess egenskap med hjälp av egenskapsfönstret (Egenskaper Fig. 12.2). Därmed skapas gränssnittet (Fig. 12.3). Ris. 12.3. Projektgränssnitt (med... .


  • - Villkorliga uttalanden

    Sammansatt operatör. Strukturella operatörer Proceduranropsoperatör Ovillkorlig hoppoperatör Operatören för villkorslöst hopp ger möjlighet att ändra ordningsföljden för utförande... .


  • - Sammansatta villkorliga uttalanden

    Ibland, när man löser problem, uppstår en situation då de operatörer som finns i filialerna i sin tur kan innehålla andra villkorade operatörer. Dessa kallas sammansatta operatorer. Dessutom kan antalet investeringar eller, som de också säger, investeringsnivåer vara... .


  • - Grunderna i VBA

    Visual Basic For Application (VBA) är en kombination av ett av de enklaste programmeringsspråken och alla beräkningsmöjligheter i Excel-kalkylarket. Med VBA kan du enkelt och snabbt skapa en mängd olika applikationer, även utan att vara expert på området...

  • Kort teoretisk information

    1. Syntax och semantik för programmeringsspråket VBA

    Syntaxen för ett programmeringsspråk är en uppsättning regler som beskriver kombinationer av alfabetiska tecken som anses vara ett korrekt strukturerat program (dokument) eller dess fragment.

    De grundläggande syntaktiska principerna för detta språk är följande:

    • VBA är skiftlägesokänslig;
    • för att kommentera koden till slutet av raden, använd enda citat(") eller REM-kommando;
    • teckenvärden måste omges av dubbla citattecken (");
    • den maximala längden på ett namn i VBA (variabler, konstanter, procedurer) är 255 tecken;
    • start av ett nytt uttalande - överför till ny linje(semikolon, som i C, Java, JavaScript, används inte för detta);
    • begränsningar på maximal längd det finns ingen rad (även om i editorn bara 308 tecken ryms på en rad). Flera påståenden på samma rad separeras med kolon:
      MsgBox "Check 1" : MsgBox "Check 2"
    • För att underlätta läsningen kan du kombinera flera fysiska rader till en logisk rad med ett mellanslag och ett understreck efter det:
      MsgBox "Meddelande till användare" _
      &vAnvändarnamn

    Ett språks semantik är den semantiska betydelsen av ord. I programmering - den initiala semantiska betydelsen av operatorer, grundläggande språkkonstruktioner, etc.

    Operatörär den minsta enheten av VBA-kod som kan exekveras. En sats kan deklarera eller definiera en variabel, ställa in ett VBA-kompilatoralternativ eller utföra någon åtgärd i ett program.

    Aritmetisk Det finns bara 7 operatörer i VBA.

    Fyra standard: addition (+), subtraktion (−), multiplikation (*), division (/) och tre till:

    • exponentiering (^). Till exempel, 2^3 = 8;
    • heltalsdivision (\). Delar det första talet med det andra, kasserar (utan att avrunda) bråkdelen. Till exempel, 5\2 = 2;
    • modulo division (Mod). Dividerar det första talet med det andra, och returnerar endast resten av divisionen. Till exempel, 5 Mod 2 = 1.

    Tilldelningsoperatören i VBA är likhetstecknet. Du kan skriva det så här:

    Låt nVar = 10
    eller ännu enklare:
    nVar = 10

    Blanda inte ihop likhetstecknet med likhetstecken här. Det sista uttrycket betyder "ställ in värdet på nVar till 10", och om raden ser ut så här: Om (nVar = 10) betyder det "om värdet på nVar är 10".

    Jämförelseoperatörer i VBA finns det bara 8:

    • jämlikhet (=). Till exempel, If (nVar = 10);
    • större än (>) och mindre än (10);
    • större än eller lika med (>=) och mindre än eller lika med (= 10);
    • inte jämnlikt (). Till exempel, If(nVar10);
    • jämförelse av objekt (Is). Bestämmer om objektvariabler refererar till samma objekt eller till olika. Till exempel, If (obj1 är obj2);
    • likhet (Gilla). Jämför ett strängobjekt med ett mönster och avgör om mönstret matchar.

    Jämförelseoperatörer återkommer alltid Sann(om påståendet är sant) eller Falsk(om påståendet är falskt).

    Mycket ofta, när de kontrollerar flera villkor, använder de logiska operatorer:

    • Och - logiskt OCH Båda villkoren måste vara sanna;
    • Eller - logiskt ELLER. Minst ett av villkoren måste vara sant;
    • Inte - logisk negation. Returnerar True om villkoret är falskt;
    • Xor är ett logiskt undantag. I uttrycket E1 returnerar Xeller E2 True om endast E1 = True eller endast E2 = True, annars False;
    • Eqv - ekvivalens av två uttryck, returnerar True om de har samma värde;
    • Imp - implikation, E1 Imp E2 returnerar False om E1 = Sant och E2 = Falskt, annars Sant.

    Du måste komma ihåg om Och, eller, inte, andra logiska operatorer används sällan.

    Variabler– Det här är behållare för att lagra föränderlig data. Nästan inget program klarar sig utan dem. För enkelhetens skull kan en variabel jämföras med en siffra i en garderob - du ger en del data till garderoben, och som svar får du ett nummer. När du behöver dessa uppgifter igen "presenterar du numret" och tar emot det.

    Varje variabel har ett namn. En variabel nås med namn. Reglerna för att välja namn i VBA är desamma för många element (variabler, konstanter, funktioner, procedurer, etc.):

    • namnet måste börja med en bokstav;
    • får inte innehålla mellanslag eller skiljetecken (undantag är understrecket);
    • maximal längd - 255 tecken;
    • måste vara unik i den nuvarande omfattningen
    • reserverade ord (de som är markerade med blått i kodredigeringsfönstret) kan inte användas.

    När du skapar VBA-program rekommenderas det att besluta om reglerna för vilka objekt kommer att namnges - en namnkonvention. Det vanligaste är det så kallade ungerska avtalet (till ära av en av Microsofts programmerare, Charles Simonyi, en ungersk medborgare):

    • Variabelnamnet måste börja med ett prefix, skrivet med små bokstäver. Prefixet anger exakt vad som kommer att lagras i denna variabel:
      str (eller s) - Sträng, teckenvärde;
      fn (eller f) - funktion;
      under - förfarande;
      c (eller alla bokstäver i namnet är versaler) - konstant(en behållare för att lagra data som, till skillnad från variabler, inte ändras under körningen av ett VBA-program);
      b - Booleskt, logiskt värde (Sant eller Falskt);
      d - datum;
      obj (eller o) - objektreferens;
      n - numeriskt värde;
    • namn på funktioner, metoder och varje ord i ett sammansatt ord måste börja med en stor bokstav:
      MsgBox objMyDocument.Name
      Sub CheckDateSub()

    Data typ anses vara de mest grundläggande begreppen i alla programmeringsspråk. En datatyp definierar uppsättningen giltiga värden som ett värde (variabel eller konstant) kan ta och uppsättningen av åtgärder som kan utföras på det värdet.

    2. Grundläggande VBA-datatyper

    VBA tillhandahåller följande datatyper:

    • numerisk:
      Byte- ett heltal från 0 till 255, behövs för förvaring 1 byte minne;
      Heltal- ett heltal från -32 768 till 32 767, 2 byte ;
      Lång- ett stort heltal från −2 147 483 648 till 2 147 483 647, 4 bytes ;
      Valuta(monetär) - stor decimal nummer med 19 positioner, inklusive 4 decimaler
      (från –922337203685477.5808 till 922337203685477.5807), 4 bytes,
      används för att lagra siffror när noggrannhet är extremt viktig, vilket händer vid beräkning med monetära enheter;
      Decimal- ett ännu större decimaltal med 29 positioner (efter decimaltecknet kan du använda från 0 till 28 positioner), 8 byte;
      Enda Och Dubbel- flyttalsvärden ( 4 och 8 byte)
      (från -3,402823·10 38 till -1,401298·10 -45 för negativa värden och
      från 1,401298·10 -45 till 3,402823·10 38 för positiva värden för singel, och
      från -1,79769313486232·10 308 till -4,94065645841247·10 -324 för negativa värden och
      från 4,94065645841247·10 -324 till 1,79769313486232·10 308 för positiva värden för Double);
    • sträng( Sträng variabel längd (upp till cirka 2 miljarder tecken) och fast längd (upp till cirka 65 400 tecken));
    • datum och tid ( Datum- från 01.01.100 till 31.12.9999), 8 byte;
    • boolesk ( Boolean- kan bara lagra sanna och falska värden), 2 byte;
    • objekt ( Objekt- lagrar en referens till ett objekt i minnet);
    • Variant- en speciell datatyp som kan lagra alla typer av data, 16 byte +1
    Datatypsbeteckningar är språknyckelord (och markeras när de skrivs i VBA-redigeraren). Ovan olika typer olika operationer är möjliga på data. Det finns tre huvudtyper av operationer i VBA:
    • matematiska, utförda på siffror, deras resultat är siffror;
    • relationsoperationer kan tillämpas inte bara på tal, deras resultat är ett värde av den logiska typen;
    • logisk, används i logiska uttryck och deras resultat är booleska värden.

    3. Operationsprioriteringar

    En prioritet Drift
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Funktionsanrop och parenteser
    ^
    - (byte av tecken)
    *, /
    \
    Mod
    +, –
    >, <, >=, <=, <>, =
    Inte
    Och
    Eller
    Xor

    4. Matematiska funktioner

    Fungera Returvärde
    Magmuskler (<число>) Modul (absolut värde) för ett tal
    Atn(<число>) Arctangens
    För(<число>) Cosinus
    Exp (<число>) Exponent, dvs resultatet av att höja basen för den naturliga logaritmen till den specificerade potensen
    Logga(<число>) Naturlig logaritm
    Rnd (<число>) Slumptal från intervallet [, Titel]

    Argument:

    Meddelande - ett obligatoriskt argument som anger informationsmeddelandet som ska visas i fönstret. Kan bestå av flera textrader sammanfogade av ett tecken & . Användning i detta argument Chr(13) leder till en ny rad vid utmatning av information.

    Knappar - värdet på detta argument avgör vilka kategorier av knappar som visas i fönstret. Värdet på knappargumentet avgör också om någon ikon visas i fönstret. Om du inte anger vilka knappar som ska visas i meddelanderutan används standardvärdet som motsvarar OK-knappen. I tabell 3.1 visar möjliga kombinationer av knappar och ikoner i meddelandefönstret.

    Rubrik - ställer in fönstrets titel.

    Fungera MsgBox returnerar ett heltalsvärde som anger vilken knapp som klickades på i dialogrutan.

    Tabell 3.1. Giltiga knappvariabelvärden

    Visa

    Argument

    OK-knappen

    Knapparna OK och Avbryt

    Ja och Nej knappar

    Knapparna Ja, Nej och Avbryt

    Knapparna Stopp, Upprepa och Ignorera

    VbAbortRetryIgnore

    Knapparna Försök igen och Avbryt.

    Informationsskylt

    Frågetecken

    Utropstecken

    Till exempel. Visa ett meddelande om det aktuella datumet.

    MsgBox "Idag i kalendern" & Datum , "Obs"

    Som ett resultat kommer följande fönster att visas (Fig. 3.1).

    Efter att ha klickat på OK stängs meddelanderutan och programkörningen återupptas från satsen omedelbart efter MsgBox-anropet.

    3.3.2. Fungera Inmatningslåda

    Fungera Inmatningslåda anger variabelvärden med hjälp av inmatningsfönstret och har följande syntax:

    Variable_Name = Inmatningslåda(Meddelande[, Titel] )

    Argument:

    Meddelande - krävs argument. Ställer in ett informationsmeddelande i fönstret, som vanligtvis förklarar innebörden av det angivna värdet.

    Rubrik - ställer in fönstrets titel.

    Till exempel, Ange värdet på variabeln N från tangentbordet, vilket ger ett standardvärde på 10.

    För att göra detta kan du använda följande operator:

    N = InputBox("Ange N", "Input input",10)

    Som ett resultat kommer följande fönster att visas för inmatning av värdet på variabeln N (Fig. 3.2).

    Om standardvärdet är acceptabelt för användaren, stängs inmatningsfönstret efter att ha klickat på OK-knappen, variabeln N sätts till 10 och programkörningen återupptas från satsen omedelbart bakom anropet Inmatningslåda.

    Om standardvärdet inte är lämpligt för användaren måste du ange önskat värde för N-variabeln innan du klickar på OK-knappen.

    3 .4. Villkorligt IF-uttalande

    För att implementera en förgrenad beräkningsprocess i VBA används operatören Om då annars, vilket är den enklaste formen av tillståndskontroll. Den har följande syntax:

    OmSKICKSedanOPERATÖR_1ElseOPERATÖR_2

    OPERATÖR_1 avrättas om SKICK sant, annars utfört OPERATÖR_2. I det här fallet skrivs If...Then...Else-satsen på en rad.

    SKICKär ett booleskt uttryck. Resultatet av ett uttryck är alltid booleskt. Ett uttryck kan vara enkelt eller komplext. När du skriver enkla villkor kan alla möjliga relationsoperationer som anges i tabellen användas. 3.2.

    Tabell3 .2. Logiska relationer

    Drift

    namn

    Uttryck

    Resultat

    Sant om A är lika med B

    Sant om A inte är lika med B

    Sant om A är större än B

    Sant om A är mindre än B

    Mer eller lika

    Sant om A är större än eller lika med B

    Mindre eller lika

    Sant om A är mindre än eller lika med B

    Komplexa villkor bildas av enkla genom att använda logiska operationer och parenteser. Listan över logiska operationer ges i tabellen. 3.3.

    Tabell3 .3. Logiska operationer

    namn

    Uttryck

    Resultat

    Boolean
    negation

    Logisk OCH

    Logisk ELLER

    I ett villkorligt uttalande är det tillåtet att använda ett block av satser istället för något av satserna. I det här fallet ser den villkorliga operatorn ut så här:

    OmSKICKSedan

    BLOCK_OPERATORS_1

    BLOCK_OPERATORS_2

    Sluta If

    Ett villkorligt uttalande kan testa flera villkor. I det här fallet ser den villkorliga operatorn ut så här:

    OmCONDITION_1Sedan

    BLOCK_OPERATORS_1

    ElseIfCONDITION_2Sedan

    BLOCK_OPERATORS_2

    Annan

    SlutetOm

    Exempel 1. Skriv en del av programmet för algoritmen i fig. 3.3.

    Exempel 2. Skriv en del av programmet för algoritmen i fig. 3.4.

    3.5. Välj ärendeoperatör

    Operatorn Välj fall är användbar när du behöver utföra olika åtgärder beroende på värdet av ett uttryck som har en begränsad uppsättning giltiga värden. Det är också relaterat till villkorliga uttalanden, men har en annan form:

    Välj FallUTTRYCK UNDER TEST

    FallVALUES_1

    OPERATÖRER_1

    FallVÄRDEN_ 2

    OPERATÖRER_ 2

    . . .

    FallVALUES_N

    OPERATÖRER_N

    [ FallAnnan

    ANNAT_ OPERATÖRER]

    Avsluta Välj

    UTTRYCK UNDER TEST kan vara av vilken skalär typ som helst utom verklig. VÄRDEN består av ett godtyckligt antal värden eller intervall separerade med kommatecken.

    Typ VÄRDEN måste matcha typen TEST_EXPRESSION.

    Först beräknas det UTTRYCK UNDER TEST. Om dess värde matchar ett av värdena VALUES_I, då kommer de att uppfyllas OPERATÖRER_I Avsluta Välj. Om dess värde inte matchar något av värdena VALUES_I, då kommer de att uppfyllas ELSE_OPERATORS och kontrollen överförs till den operatör som står efter Avsluta Välj

    Till exempel. Skriv en del av programmet för algoritmen i fig. 3.5, som bestämmer värdet på variabeln S beroende på värdet på variabeln n.

    3.6. Loop uttalanden

    För att implementera en cyklisk beräkningsprocess, d.v.s. upprepad exekvering av en eller flera operatorer, används loopoperatorn För nästa, som har följande syntax:

    FörCOUNTER=START_VALUEToCON_VALUEStegSTEG

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    NästaDISKEN

    For...Next loopar genom värdena för en variabel DISKEN, som är en loopparameter, från det initiala till det slutliga värdet med det angivna ändringssteget. Detta säkerställer att blocket med loopkroppssatser exekveras med varje nytt räknarvärde. Om StegSTEG saknas i designen, då antas det som standard att steget är lika med 1. Enligt operatören Avsluta för du kan avsluta loop-satsen innan DISKEN når det sista värdet.*

    För att iterera genom objekt från en grupp liknande objekt, till exempel celler från ett område eller arrayelement, är det bekvämt att använda loopoperatorn För…Varje ... Nästa.

    För varjeElementIGrupp

    BLOCKERA_ OPERATÖRER

    OPERATOR_BLOCK

    NästaElement

    I VBA används andra loopoperatorer för att organisera loopar med ett okänt antal repetitioner:

    slingor med förutsättning - DoMedanSlinga,

    DoFram tillsSlinga;

    slingor med postcondition - DoSlingaMedan,

    DoSlingaFram tills.

    Nedan är syntaxen för dessa loop-satser:

    "Slinga med förutsättningDo Medan Slinga

    Göra medanSKICK

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    "Slinga med förutsättningDo Fram tills Slinga

    DoFram tillsSKICK

    OPERATOR_BLOCK

    OPERATOR_BLOCK

    "Slinga med postconditionDo Loop While

    BLOCKERA_ OPERATÖRER

    OPERATOR_BLOCK

    Loop WhileSKICK

    "Slinga med postconditionDo Slinga tills

    BLOCKERA_ OPERATÖRER

    OPERATOR_BLOCK

    Slinga tillsSKICK

    Operatör DoWhile...Loop säkerställer att ett block med uttalanden upprepas flera gånger tills SKICK observeras och operatören



    Andra nyheter

    Språkinstruktioner (eller operatorer)– dessa är programenheter som utför vissa åtgärder eller beskriver data.

    Uttalandet innehåller ett eller flera nyckelord och eventuellt parametrar. Flera påståenden som finns på samma programrad är separerade från varandra med ett kolon. Om satsen är för lång kan du dela upp den i flera rader genom att använda understrecket _ för att bryta den.

    HANDLA OM P erator uppgifter

    Tilldelningsoperatorn används för att tilldela ett nytt värde till en variabel under programexekveringen. Uppdragstecknet "=".

    Till exempel, operatör:

    x = Sqr(5 + Tan(1,8)^2)

    tilldelar variabel x värdet på expression . Som ett resultat av att beräkna uttrycket skrivet på höger sida får vi ett reellt tal. Men värdet som kommer att tilldelas variabel x beror på hur typen av variabeln deklarerades. Så om variabeln x är av typen Single, kommer den att tilldelas resultatet 4,834464, om den är Double, sedan 4,83446368725481, och om den är heltal, då 5.

    Datatypen för variabeln x måste vara kompatibel med datatypen för detta uttryck. Förutom implicit konvertering från en typ till en annan under uppdraget, ger Visual Basic möjligheten att konvertera typer med hjälp av funktioner. Till exempel funktionen CDbl konverterar data till dubbel typ, CInt– till heltalstypen, Clng– till den långa typen, CSng– till Single-typen, CStr– för att skriva String, etc.

    CInt- och Clng-funktionerna runt resultatet. Dessutom, om bråkdelen av ett tal är 0,5, görs avrundning till närmaste jämna tal.

    Uppdragsoperatör låter dig inte bara tilldela ett värde till en variabel, utan också att ställa in värdena för egenskaper hos VBA-objekt. Till exempel operatören

    Rows("1:1"). Teckensnitt. Fet = Sant

    Gör typsnittet på första raden i kalkylbladet fetstilt.

    LINJEBRYT

    Kombination<Пробел> + <Знак подчеркивания>i slutet av en rad säkerställer att nästa rad är en fortsättning på den föregående. Samtidigt måste vi komma ihåg att:

    § Du kan inte bryta strängkonstanter genom att linda

    § Högst sju fortsättningar av samma rad är tillåtna

    § Själva raden får inte innehålla mer än 1024 tecken

    Exempel.

    Felaktig överföring Korrekt överföring

    Line = "Visual Basic för _ Line = "Visual Basic" _

    Applikationer" och "för applikationer"

    KOMMENTARER

    Texten efter symbolen (") i ett program upp till slutet av raden ignoreras av kompilatorn och är en kommentar. Kommentarer används för att lägga till förklaringar och beskrivningar till programmet. Kommentarer är användbara vid felsökning av ett program: de tillåter att tillfälligt inaktivera programrader under felsökning.

    Villkorlig operatör

    En villkorlig sats exekverar vissa instruktioner (påståenden) beroende på värdet av villkorsuttrycket. Blockdiagrammet för att kontrollera tillståndet ser ut så här:

    Ris. 1. Förgreningen kan vara ofullständig (denna struktur kallas även bypass).

    Ris. 2. Den villkorliga satsen har två former av syntax: linje och block.

    Små bokstäver

    Om skick Sedan [ operators_om_true]

    Algoritmen som presenteras i fig. 1, kommer i gemener att skrivas som

    Om skick Sedan operators_om_true Annan operators_if_false

    Figur 2 motsvarar posten

    Om skick Sedan operators_om_true

    Figur 3 motsvarar posten

    Om skick Sedan Else operators_if_false

    Blockform

    Om skick-1 Sedan

    [operators_if condition–1_true]

    [operators_if_all_conditions_false]]

    Villkoren som anges i If- och ElseIf-delarna är relationsuttryck eller logiska uttryck. När ett av villkoren är uppfyllt exekveras satserna som följer dess motsvarande Then nyckelord, och de återstående satserna ignoreras (det vill säga inga ytterligare tester utförs och kontrollen överförs till satsen efter End If). Om inget av de logiska förhållandena är sant, då operators_if_all_previous_conditions_false, eller, om denna del utelämnas, överförs kontrollen till programraden efter villkorssatsen.

    Blockformen för If-satsen är att föredra om:

    När ett villkor är uppfyllt eller inte uppfyllt exekveras flera satser (radformen i detta fall kan också användas, men raden blir för lång och programmet mindre tydligt);

    Flera villkor kontrolleras sekventiellt, och när nästa villkor är uppfyllt är det olämpligt att kontrollera efterföljande villkor (det är därför nyckelordet ElseIf används).

    Exempel

    Företaget ger rabatter till grossistköpare.

    Baserat på den kända beställningsvolymen är det nödvändigt att bestämma dess kostnad.

    För att beräkna orderkostnaden använder vi funktionen:

    Offentlig funktion Order_Cost(Quantity As Long) As Double

    Om Kvantitet<= 999 Then

    Order_cost = Kvantitet * 5

    ElseIf Kvantitet<= 1999 Then

    Order_cost = Kvantitet * 4.8

    Order_cost = Kvantitet * 4,75

    I det här fallet var det möjligt att använda IF-operatorns gemener:

    Offentlig funktion Order_Cost1(Quantity As Long) As Double

    Om Kvantitet<= 999 Then Стоимость_заказа1 = Количество * 5

    Om kvantitet >= 1000 och kvantitet<= 1999 Then Стоимость_­ заказа1 = Количество * 4.8

    Om Kvantitet >= 2000 Då Order_Cost1 = Kvantitet * 4,75

    Om vi ​​inte överväger nackdelarna med att raderna är långa, och för varje ordervolym utförs alla kontroller sekventiellt (det första förfarandet fungerar snabbare för små ordervolymer), så är programmet korrekt skrivet och kanske ännu tydligare.

    Det är dock möjligt att ge exempel där, om ett av villkoren är uppfyllt (eller inte uppfyllt), de andra helt enkelt inte kan kontrolleras.

    Till exempel, vissa operatörer måste köras när villkoren uppfylls gemensamt: http://po-teme.com.ua/images/adIIIin/image014_e652e49476c6f0eb9cf40b68cc090828.gif" alt="" width="56" height="27 src="> Om för kontroller använd operator

    Om x>0 och y

    sedan om x är negativt kommer ett fel att uppstå när sqr-funktionen anropas (roten är ett negativt tal).

    Detta fel kan undvikas genom att använda designen

    Om x > 0 Då Om y< Sqr(x) Then

    I den sista formen av posten, om det finns ett Else-nyckelord, hänvisar det till den sista If-satsen.

    Urvalsoperatör

    Välj Fall uttryck

    [instruktioner_annan]]

    Expressionsparametern är valfritt numeriskt eller stränguttryck. Istället för att utvärdera ett logiskt villkor jämförs uttryckets värde med vart och ett av värdena som specificeras av parametern uttryckslista-n.

    Värden för jämförelse ingår i expression_list-n, kan anges i formuläret:

    – värden;

    – värdeintervall i formuläret ursprungligt värde Till slutligt_värde;

    – jämförelseuttryck i formen Is comparison_operator värde;

    – en lista över någon av de listade uttryckstyperna (separator – komma).

    En instruktion kan innehålla ett godtyckligt antal Case-block. Om inget av villkoren är sant, exekveras satserna i Case Else-blocket.

    Till exempel, om villkoret är en poäng över tre, kan detta villkor skrivas: Fall 4, 5 eller Fall är >3 eller Fall är >= 4 eller Fall 4 till 5.

    Notera. Nyckelord Behöver inte anges, den läggs till automatiskt.

    Exempel

    Ovanstående exempel med ett rabatterat pris med Select Case-konstruktionen kan lösas enligt följande:

    Offentlig funktion Order_Cost2(Quantity As Long) As Double

    Välj ärendekvantitet

    Order_cost2 = Kvantitet * 5

    Fall 1000 till 1999

    Order_cost2 = Kvantitet * 4,8

    Fall är >= 2000

    Order_cost2 = Kvantitet * 4,75

    Ett VBA-program är en sekvens av uttalanden.

    Det finns ett antal konventioner som bör följas när man skriver program. Således kan flera påståenden placeras på en rad. Ett kolon placeras mellan påståenden på samma rad.

    Vilken rad som helst kan delas i två genom att placera tecknen "Mellanslag" + "Understreck" (_) i slutet av den första, i vilket fall den andra raden kommer att betraktas som en fortsättning på den första.

    Kommentarer används för att göra programmet lättläst. Det finns två sätt att skriva in kommentarer i VBA: att använda en apostrof ('), som kan placeras var som helst på en rad, och att använda det reserverade ordet Rem istället för en apostrof.

    1. Dim operatörär avsedd för att deklarera variabeltyper.

    1. Dim A som heltal – variabel A deklareras som ett heltal, dvs. den lagrar endast heltalsvärden .

    2. Dim D som datum – variabel D deklareras för att lagra datum.

    3. Dim efternamn, namn som sträng – variabler deklareras. Efternamn och namn, avsedda för lagring av text.

    4. Dim B(12) Som heltal – en endimensionell array (vektor) som består av 12 heltal deklareras, och som standard kommer det första elementet i arrayen att vara B(0), och det sista B(12).

    5. Dim B(3,3) Som singel – en tvådimensionell 3x3-matris (matris) som består av reella tal deklareras.

    Om en variabeltyp inte anges är standardtypen Variant. Men att specificera en specifik typ av variabel gör programmet mer tillförlitligt och påskyndar dess drift, eftersom VBA behöver inte slösa tid på att känna igen en odeklarerad variabel varje gång den används.

    Om storleken på arrayen M inte är känd i förväg och bestäms under programmet, indikeras inte antalet element när arrayen beskrivs, och arrayen definieras enligt följande:

    Dim M() Som heltal

    Efter att ha bestämt antalet arrayelement, till exempel N, måste du skriva operatorn

    2. Uppdragsoperatörär avsett att tilldela ett värde till en variabel.

    Syntax:

    Variabel (eller objektegenskap) = uttryck.

    1. a=5 – tilldela variabel A värdet 5 ;

    2. b=”Manager” – variabel b tilldela betyder "chef";

    · Address=Sheets("Organisationer").Cells(2,2) – tilldela adressvariabeln innehållet i cell B2, som finns på bladet Organisationer i den aktuella arbetsboken;

    Efternamn=UserForm1.TextBox1.Text – variabel Efternamn tilldelas innehållet i TextBox1-fältet i användarformuläret UserForm1.

    o Med/Avsluta med uttalande sparar programmeraren från ett stort antal upprepningar av namnet på samma objekt.

    Syntax:

    Med föremål

    operatör1

    operatör2

    operatörN

    Till exempel istället för en sekvens av påståenden

    UserForm1.TextBox1.Text = Datum

    UserForm1.TextBox2.Text = " "

    UserForm1.ComboBox1.Text = " "

    kan skrivas så här

    TextBox1.Text = Datum

    . TextBox2.Text = " "

    . ComboBox1.Text = " "

    REM På blad Blad1 i kolumn A, med början på andra raden, skrivs ’anställda tariffer’ ner. Fyll i kombinationsrutan ComboBox1 i användarformuläret UserForm1

    'Den första raden i programmet - på arket Blad1 i kolumn A 'antalet fyllda celler räknas, resultatet' tilldelas variabeln N

    N=Application.CountA(Sheets(“Sheet1”).Range(“A:A”)).

    D=”A2:A”&Cint(N)

    Sheets(”Sheet1”).Range(D).Name=”Tariffer”

    TextBox1.Text = Datum

    . TextBox2.Text = " "

    . ComboBox1.Text = " "

    . ComboBox1.Rowsource = "Tariffer"

    1. Villkorligt uttalande If/Then/Else– låter dig kontrollera ett visst tillstånd och, beroende på resultatet av kontrollen, utföra en eller annan åtgärd

    Syntax:

    Om skick Sedan operatörer1 [ Annan operatörer2]

    Om villkoret är sant, exekveras satser1, annars exekveras satser2.

    Det är också möjligt att använda en komplex villkorlig operator, som är skriven som ett block:

    Om skick1 Sedan

    operatörer1

    ElseIf skick2 Sedan

    operatörer2

    operatörer3

    Efternamn=.TextBox1.Text

    Om Efternamn =”“ Då MsgBox”Du har inte angett något efternamn”

    REM När kryssruta nummer 1 är markerad ges kunden 5 % rabatt

    ' Belopp – summa pengar som betalas av klienten

    ' Kostnaden för produkten lagras i kostnadsvariabeln

    Om UserForm1.CheckBox1.Value = True Då

    Belopp=Kostnad-Kostnad*0,05

    Annat belopp=kostnad

    1) REM Antag att Tariff är den fastställda tariffen och Time är den arbetade tiden. Tid och taxa skrivs in i inmatningsfälten 'i TextBox1 respektive TextBox2. Lönen beräknas med formeln Tariff*Tid. Låt oss skriva ett program för att visa den beräknade lönen i formuläret. Label4 – inskription förberedd för att "visa lönevärdet"

    If IsNumeric(TextBox1.Text)=True And _

    IsNumeric(TextBox2.Text)=Sant Då

    Tariff=TextBox1.Text

    Time=TextBox2.Text

    Label4.Caption=Taxa*Tid

    I det första exemplet arbetar vi med användarform nummer ett. Variabel Efternamn innehållet i inmatningsfält nummer ett tilldelas. Den kontrollerar sedan om något har skrivits in i inmatningsfältet (om variabeln är tom Efternamn). Om variabeln Efternamnär tom, visas en meddelanderuta på skärmen.

    I det andra exemplet är de första raderna som börjar med ordet REM och apostrof kommentarer som förklarar syftet med variablerna. Den villkorade operatören bestämmer det belopp som betalas av klienten.

    Det tredje exemplet kontrollerar om siffror anges i inmatningsfälten. Om siffror skrivs in i två fält, tilldelas variablerna värdena för inmatningsfälten och etiketten tilldelas värdet av resultatet av multiplicering av tariffen med tid.

    1) Ovillkorlig hoppoperatör Gå tillär avsedd för att specificera en övergång till en specificerad rad i ett program.

    Syntax:

    Gå till sträng

    Obligatoriskt argument Sträng kan vara valfri radetikett eller radnummer.

    If IsNumeric(TextBox1.Text)=False Then GoTo Error

    Fel: MsgBox "Fel vid inmatning av siffror!"

    Exemplet ovan kontrollerar om ett nummer har skrivits in i inmatningsfält ett. Om det angivna numret inte är ett nummer, flyttas raden med feletiketten och ett meddelande visas på skärmen.

    2) Slingoperatör För/Till/Nästa designad för programmering av repeterande fragment, dvs. för att beskriva cykliska algoritmer.

    Syntax:

    För variabel=M1 Till M2 [ Steg M3]

    operatörer

    M1, M2, M3 – uttryck. En loop-sats upprepar exekveringen av en grupp av satser medan variabeln (räknaren) ändras från initialvärdet M1 till slutvärdet M2 med det specificerade steget M3. Om steget inte anges antas det vara 1.

    Efternamn = Sheets(“Anställda”).Cells(I,1)

    UserForm1.ComboBox1.AddItem Efternamn

    I det angivna exemplet antas det att på bladet "Anställda" innehåller den första kolumnen namnen på anställda som behöver inkluderas i listan med kombinationsruta nummer ett i användarformulär nummer ett. Programoperationsalgoritm:

    1) Variabel I tilldelas värdet 2.

    2) Variabeln Efternamn tilldelas värdet av cell A(I,1), som finns på arket "Anställda". (När loopen exekveras för första gången är detta cell A(2,1))

    3) Ett element från variabeln Efternamn läggs till i listan över kombinationsrutan ComboBox1.

    4) 1 läggs till värdet på variabeln I (om steget inte anges antas det vara lika med 1). En kontroll görs för att se om värdet på I har överskridit 10 (slutvärdet på variabeln I, i exemplet M3=10)? Om värdet på I är ännu mindre än eller lika med 10, utförs steg 2-4, annars avslutas cykeln.

    Således låter programmet ovan dig fylla listan över ComboBox1 med data.

    Grundläggande algoritmer som används för att lösa
    ekonomiska uppgifter

    Låt oss titta på de grundläggande algoritmerna med följande exempel. Anställda från olika avdelningar deltog i utförandet av arbetet enligt kontraktet. Tabellen på blad “Sheet1” visar uppgifter om antalet arbetade timmar av varje anställd (fig. 8).


    Fig. 8. Uppgifter om antalet arbetade timmar

    företagets anställda


    En värld av gratis program och användbara tips
    2024 whatsappss.ru