如何使用VBA输入框来调用子?

时间:2017-07-24 17:54:18

标签: excel-vba vba excel

我有十二份报告,每月一份。根据输入的月份,我想运行编译报告的相应宏(也标记为一年中的月份)。有没有办法使用输入框来调用宏?

2 个答案:

答案 0 :(得分:3)

基本上,您将输入框输入保存为字符串,然后将其与您需要的任何条件进行比较。可以使用巨大的If语句块或Select Case块来完成此比较。

Option Explicit

Sub MonthTest()
Dim strMonth As String

strMonth = InputBox("enter month here")

If strMonth = "January" Then
    Call January
    MsgBox "You put in January"
ElseIf strMonth = "February" Then

End If
End Sub

Option Explicit

Sub CallMonthCase()

Dim strMonth As String

Select Case strMonth
    Case Is = "January"
        Call January
    Case Is = "February"
        Call February
    'etc etc
End Select
End Sub

案例结构值得快一点,看起来更清晰,但通常难以在语法上制作,因为我们人类不会想到

答案 1 :(得分:2)

是的,当request提示用户输入月份时,将用户的输入存储到变量中。在具有InputBox的宏中,在使用用户选择填充单元格之后,可以使用if语句调用另一个函数/宏。

InputBox

使宏名称与月份的条目相同,因此如果用户输入" 1月"它将运行宏January()。