在宏中提供选项(Microsoft Excel)
如果您刚开始开发宏,则可能正在寻找一种简单的方法来向用户提供一组选择,然后根据用户的响应采取措施。如果您将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及更高版本)找到本技巧的版本: