如果您刚开始开发宏,则可能正在寻找一种简单的方法来向用户提供一组选择,然后根据用户的响应采取措施。如果您将InputBox函数和Select Case结构一起使用,这是一个相对简单的任务。

第一个任务是设置您的InputBox,以便向用户显示信息。例如,假设您有五个选项,并且希望用户从这五个中选择一个选项。您可以使用以下代码将五个选项放在一起,每个选项都放在各自的行上:

Prompt = "1. This is your first choice" & vbCrLf Prompt = Prompt & "2. This is your second choice" & vbCrLf Prompt = Prompt & "3. This is your third choice" & vbCrLf Prompt = Prompt & "4. This is your fourth choice" & vbCrLf Prompt = Prompt & "5. This is your fifth choice"

现在,当您在宏中调用InputBox函数时,可以使用Prompt字符串。然后,您可以将用户的回答转换为代表他们从五个选项中选择的数字。执行此操作的代码如下:

UserResp = InputBox(Prompt, "The Big Question")

UR = Val(UserResp)

在此示例中,将InputBox函数的响应分配给UserResp变量,该变量的大小应设置为字符串。然后根据字符串的值设置UR变量,该变量的大小应为整数。 (Val函数以字符串形式返回值。)

剩下要做的唯一一件事就是根据选择的数字1到5采取行动。您可以使用Select Case结构来执行此操作。

完整的子例程可能如下所示:

Sub Macro1()

Dim Prompt As String     Dim UserResp As String     Dim UR As Integer

Prompt = "1. This is your first choice" & vbCrLf     Prompt = Prompt & "2. This is your second choice" & vbCrLf     Prompt = Prompt & "3. This is your third choice" & vbCrLf     Prompt = Prompt & "4. This is your fourth choice" & vbCrLf     Prompt = Prompt & "5. This is your fifth choice"

UR = 0     While UR < 1 Or UR > 5         UserResp = InputBox(Prompt, "The Big Question")

UR = Val(UserResp)

Wend     Select Case UR         Case 1             'Do stuff for choice 1 here         Case 2             'Do stuff for choice 2 here         Case 3             'Do stuff for choice 3 here         Case 4             'Do stuff for choice 4 here         Case 5             'Do stuff for choice 5 here     End Select End Sub

请注意,此示例在InputBox函数周围使用While …​ Wend循环。这样做是为了确保用户输入的数字介于1到5之间。如果输入的值超出该范围,则只需再次询问用户。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3098)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: