是否可以定义一个 VBA 函数,使其只接受特定的预定义值作为参数值?例如,如果我创建一个这样的函数:
Function Test(vTxt as Boolean)
Msgbox vText
End Function
并从任何其他子调用它,我必须为vTxt
给出True或False ,并且它不会接受任何其他值。例如,我可以调用 Test
如:
Sub Example ()
Call Test(True)
End Sub
像这样,我可以在函数中设置其他参数,以便调用者只能从预先确定的选项中进行选择吗?例如:
Function Test2(vTxt as <something>)
Msgbox vText
End Function
以及调用 Test2
时,调用者必须为变量 vTxt
指定选项 1、选项 2 或选项 3 。我不想创建多个可选参数,而只想创建一个具有多个预定值的参数。我可以用来做什么<something>
?
最佳答案
我认为您想为用户提供有限数量的参数选择。 Enum types是一种方法来做到这一点。在模块的开头,创建您的类型:
Public Enum TestChoices
Option1
Option2
Option3
End Enum
然后,在您的函数中,采用 TestChoices
参数:
Sub Test(vMsg as TestChoices)
Dim message as String
Select Case vMsg
Case Option1: message="option 1 selected"
Case Option2: message="option 2 selected"
Case Option3: message="option 3 selected"
End Select
MsgBox message
End Sub
另请参阅MSDN docs for enums .
关于VBA:将函数参数限制为仅选定的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38250515/