Erbjuder Alternativ i ett makro

July 19

Om du just har börjat utveckla makron, kan du letar efter ett enkelt sätt att erbjuda en uppsättning val för en användare, och sedan ta en åtgärd baserat på användarens svar. Detta är en relativt enkel uppgift, om du använder InputBox funktionen tillsammans med en Select Case struktur.

Den första uppgiften är att ställa in din InputBox så den visar information för användaren. Till exempel, låt oss säga att du har fem alternativ och du vill att användaren ska välja ett alternativ från dem fem. Du kan använda följande kod för att sätta ihop fem alternativ, var på sin egen linje:

Prompt = "1. Detta är ditt första val" & vbCrLf
Prompt = Prompt & "2. Detta är ditt andra val" & vbCrLf
Prompt = Prompt & "3. Detta är din tredje val" & vbCrLf
Prompt = Prompt & "4. Detta är din fjärde val" & vbCrLf
Prompt = Prompt & "5. Detta är din femte val"

Du kan nu använda Prompt sträng när du anropar InputBox funktionen i ditt makro. Du översätter vad användaren svarar i ett tal som representerar deras val från dina fem alternativ. Koden för att göra detta är följande:

UserResp = InputBox (Prompt, "Den stora frågan")
UR = Val (UserResp)

I detta exempel, är svaret från InputBox funktion för UserResp variabeln, som skall dimensioneras som en sträng. UR variabeln, vilket bör dimensioneras som ett heltal, sedan sätts utifrån värdet av strängen. (Val returnerar värdet i en sträng.)

Det enda som är kvar att göra är att ta en åtgärd baserad på vilket nummer valdes, 1 till 5. Du kan använda Välj Case strukturen för att göra detta. Den fullständiga subrutin kan se ut så här:

Sub Makro1 ()
Dim Prompt As String
Dim UserResp As String
Dim UR As Integer

Prompt = "1. Detta är ditt första val" & vbCrLf
Prompt = Prompt & "2. Detta är ditt andra val" & vbCrLf
Prompt = Prompt & "3. Detta är din tredje val" & vbCrLf
Prompt = Prompt & "4. Detta är din fjärde val" & vbCrLf
Prompt = Prompt & "5. Detta är din femte val"
UR = 0
Medan UR <1 Eller UR> 5
UserResp = InputBox (Prompt, "Den stora frågan")
UR = Val (UserResp)
Wend
Välj ärende UR
Fall 1
"Gör saker till val 1 här
Fall 2
"Gör saker till val 2 här
Fall 3
"Gör saker för val 3 här
Fall 4
"Gör saker för val 4 här
Fall 5
"Gör saker för val 5 här
End Select
End Sub

Observera att det här exemplet används en While ... Wend slinga runt InputBox funktionen. Detta görs för att säkerställa att användaren anger ett nummer mellan 1 och 5. Om det angivna värdet ligger utanför detta intervall, då användaren helt enkelt frågade igen.

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (3098) gäller för Microsoft Excel 97, 2000, 2002, och 2003. Du kan hitta en version av detta tips för menyfliksområdet i Excel (Excel 2007 och senare) här: Erbjuda Alternativ i ett makro.