Hem Sociala medier Hur man använder If-Then i Excel 2016 VBA-dummies

Hur man använder If-Then i Excel 2016 VBA-dummies

Innehållsförteckning:

Video: IF-formeln i Excel (OM-formeln på svenska) 2024

Video: IF-formeln i Excel (OM-formeln på svenska) 2024
Anonim

Om så är VBA: s viktigaste kontrollstruktur. Du brukar använda det här kommandot varje dag. Använd strukturen If-Then när du vill utföra en eller flera uttalanden villkorligt. Den alternativa Else-klausulen, om den ingår, låter dig utföra en eller flera uttalanden om det villkor du testar är inte sant. Här är en enkel CheckUser-procedur, omkodad för att använda If-Then-Else-strukturen:

Sub CheckUser2 () UserName = InputBox ("Ange ditt namn:") Om UserName = "Satya Nadella" Då MsgBox ("Välkommen Satya …") "… [Mer kod här] … Else MsgBox "Förlåt. Endast Satya Nadella kan köra detta. "End If End Sub"

If-Then Examples

Följande rutin visar If-Then-strukturen utan valfri Else-klausul:

Sub GreetMe () Om Time <0. 5 sedan MsgBox "Good Morning" End Sub

GreetMe-proceduren använder VBA: s Time-funktion för att få systemtiden. Om den aktuella tiden är mindre än. 5 visar rutinen en vänlig hälsning. Om tiden är större än eller lika med. 5, rutin slutar, och ingenting händer.

För att visa en annan hälsning om tiden är större än eller lika med. 5, kan du lägga till ett annat If-Then-meddelande efter det första:

Sub GreetMe2 () Om Time = 0. 5 Sedan MsgBox "Good Afternoon" End Sub

Observera att> = (större än eller lika med) används för den andra If-Then-satsen. Detta säkerställer att hela dagen är täckt. Hade> (större än) använts, skulle inget meddelande visas om denna procedur utfördes vid precis 12.00 klockan 12.00. Det är ganska osannolikt, men med ett viktigt program som detta vill du inte ta några chanser.

Ett If-Then-Else-exempel

Ett annat tillvägagångssätt till det föregående problemet använder Else-klausulen. Här är samma rutin som omkodas för att använda If-Then-Else-strukturen:

Sub GreetMe3 () Om Time <0. 5 sedan MsgBox "Good Morning" Else _ MsgBox "Good Afternoon" End Sub

Observera att linjen fortsättningskaraktär (understrykning) används i föregående exempel. If-Then-Else-uttalandet är faktiskt ett enda uttalande. VBA tillhandahåller ett något annorlunda sätt att koda If-Then-Else-konstruktioner som använder ett End If-uttalande. Därför kan GreetMe-proceduren skrivas om som

Sub GreetMe4 () Om Time <0. 5 sedan MsgBox "Good Morning" Else MsgBox "Good Afternoon" slutet Om End Sub

Faktum är att du kan infoga ett antal uttalanden under Om del och eventuellt antal uttalanden under Else delen. Denna syntax är lättare att läsa och gör uttalanden kortare.

Vad händer om du behöver expandera GreetMe rutinen för att hantera tre villkor: morgon, eftermiddag och kväll? Du har två alternativ: Använd tre If-Then-uttalanden eller använd en kapad If-Then-Else-struktur. Nesting betyder att placera en If-Then-Else-struktur inom en annan If-Then-Else-struktur. Det första tillvägagångssättet, med hjälp av tre If-Then-satser, är enklare:

Sub GreetMe5 () Dim Msg As String Om Time = 0. 5 And Time = 0. 75 Sedan Msg = "Evening" MsgBox "Good" & Msg End Sub

En ny vridning tillsattes med hjälp av en variabel. Msg-variabeln får ett annat textvärde beroende på tid på dagen. MsgBox-satsen visar hälsningen: God morgon, god eftermiddag eller god kväll.

Följande rutin utför samma åtgärd men använder en If-Then-End If-struktur:

Sub GreetMe6 () Dim Msg As String Om Time = 0. 5 And Time = 0. 75 Then Msg = "Evening" Avsluta om MsgBox "Good" & Msg End Sub

Använda ElseIf

I de tidigare exemplen exekveras alla uttalanden i rutinen. En något mer effektiv struktur skulle gå ut ur rutinen så snart ett tillstånd har visat sig vara sant. På morgonen, till exempel, bör proceduren visa god morgonmeddelande och sedan avsluta - utan att utvärdera de övriga överflödiga villkoren.

Med en liten rutin så här behöver du inte oroa dig för körhastigheten. Men för större tillämpningar där hastigheten är kritisk bör du veta om en annan syntax för If-Then-strukturen.

Så här kan du skriva om GreetMe-rutinen genom att använda den här syntaxen:

Sub GreetMe7 () Dim Msg As String Om Time = 0. 5 And Time <0. 75 Msg = "Afternoon" Else Msg = "Evening "Sluta om MsgBox" Bra "& Msg avsluta del

När ett villkor är sant utför VBA de villkorliga utsagnen och If-strukturen slutar. Med andra ord är detta förfarande lite effektivare än tidigare exempel. Avvägningen är att koden är svårare att förstå.

Ett annat If-Then example

Här är ett annat exempel som använder den enkla formen av If-Then-strukturen. Denna procedur uppmanar användaren för en mängd och visar sedan lämplig rabatt, baserat på den mängd användaren anger:

Sub ShowDiscount () Dimma Antal Så lång Dim Dimension Som Dubbel Mängd = InputBox ("Ange Mängd:") Om Mängd > 0 Då Rabatt = 0. 1 Om Kvantitet> = 25 Då Rabatt = 0. 15 Om Kvantitet> = 50 Då Rabatt = 0. 2 Om Kvantitet> = 75 Då Rabatt = 0. 25 MsgBox "Rabatt:" & Rabatt Slut Del

Observera att varje If-Then-uttalande i den här rutinen exekveras, och värdet för Rabatt kan ändras när uttalandena exekveras. Rutinen visar emellertid slutligen det korrekta värdet för rabatt eftersom if-then-satsen är i ordning med stigande rabattvärden.

Följande procedur utför samma uppgifter genom att använda den alternativa ElseIf-syntaxen. I det här fallet avslutas rutinen direkt efter att ha genomfört deklarationerna för ett sant tillstånd:

Sub ShowDiscount2 () Dimma Antal Långt Dim Rabatt Som Dubbel Mängd = InputBox ("Ange Mängd:") Om Mängd> 0 Och Mängd <25 sedan rabatt = 0.1 ElseIf Antal> = 25 Och Antal <50 Då Rabatt = 0. 15 ElseIf Antal> = 50 Och Antal <75 Då Rabatt = 0. 2 ElseIf Antal> = 75 Då Rabatt = 0. 25 Avsluta Om MsgBox "Rabatt:" & Rabatt End Sub

Dessa multipla If-Then strukturer är ganska besvärliga. Du kanske vill använda strukturen If-Then bara för enkla binära beslut.

Hur man använder If-Then i Excel 2016 VBA-dummies

Redaktörens val

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

I Photoshop Element, Redigera Snabbt läge är en uppskattad version av Redigera fullt läge som ger grundläggande fixverktyg tillsammans med några unika funktioner, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Redigera snabbläge för att reparera dina foton: Välj ett eller flera foton i ...

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Snabb Fotoredigering är en uppskattad version av Full Photo Edit-läge som bekvämt ger grundläggande fixeringsverktyg och kastar i några unika egenskaper, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Quick Photo Edit-läget för att reparera dina foton:

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Fotoeffekter i Photoshop Elements 11 fungerar som applicera filter; medan dialogrutan Filtreringsgalleri ger dig många alternativ för att tillämpa ett filter, ger den guidade panelen dig filtereffekter och tar dig genom steg för att justera ljusstyrka, ändra färgton och mättnad och göra andra justeringar för att perfekta resultatet. Du ...

Redaktörens val

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

När du granskar en bild, bestämmer du om det är en målvakt. Om du tittar på en bild på din Canon EOS 7D Mark II, gillar du inte bilden av någon anledning kan du radera det. Men borttagning av bilder måste ske med stor försiktighet eftersom uppgiften inte kan ångras. När du har raderat en ...

Hur man redigerar filmer på en Canon EOS 60D - dummies

Hur man redigerar filmer på en Canon EOS 60D - dummies

60D Edit-funktionen gör det härligt enkelt för att ta bort oönskade delar från början eller slutet av en film direkt på din kamera. Denna ombordredigering är praktisk men grundläggande, så förvänta dig inte mirakel. Här är de enkla stegen för att trimma början eller slutet på en film: Klicka på ikonen Redigera (det ser ut ...

Redaktörens val

Hur man arbetar med text i ett Word 2010-tabell - dummies

Hur man arbetar med text i ett Word 2010-tabell - dummies

Text hinner i ett bord i Word 2010 på en cell-vid-cell basis. Varje cell i ett Word-bord kan ha ett eget styckeformat och en egen uppsättning flikar. Grupper av celler, rader och kolumner och hela tabellen kan väljas och formateras samtidigt, om du vill. All standardtext ...

Hur man arbetar med Word 2010: s decimala flik - dummies

Hur man arbetar med Word 2010: s decimala flik - dummies

Du kan använda decimalfliken i Word 2010 till rad upp kolumner av siffror. Även om du kan använda en rätt flik för att göra detta jobb är decimalfliken ett bättre val. I stället för högerjusterad text, som den högra fliken gör, justerar decimalfliken siffror efter deras decimaldel - perioden i ...

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

O saker Word 2010 kan göra med dokument! Du kan öppna flera Word-dokument samtidigt och arbeta på mycket av dem, växla mellan de olika öppna dokumenten. Öppnar flera Word-dokument samtidigt Det är inte en fråga om hur Word kan fungera på mer än ett dokument åt gången. Nej, ...