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

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

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

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

sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

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

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

完整的子例程可能在VBA中显示如下:

Sub TestInput()

Dim sPrompt As String     Dim sUserResp As String     Dim iUR As Integer

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

iUR = 0     While iUR < 1 Or iUR > 5         sUserResp = InputBox(sPrompt, "The Big Question")

iUR = Val(sUserResp)

Wend     Select Case iUR         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之间。如果输入的值超出该范围,则只需再次询问用户。

注意:

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

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(1366)适用于Microsoft Word 97、2000、2002和2003。您可以为Word(Word 2007)的功能区界面找到此技巧的版本。和更高版本)在这里: