我正在尝试使用 ParamArray 将不同类型的参数传递给同一个函数以模仿Function Overloading。
- 一单
String
- 一个
Workbook
对象,一个String
以及一个Integer
所以用户可以将不同的参数传递给同一个函数:
Function func(ParamArray params() As Variant)
blah = func("This is a string")
blah = func(wbSource, "SheetName", iRow)
有没有办法验证参数的类型?我需要确保 params() 包含正确类型的参数(一workbook
、一string
和一integer
)。
当然我可以用一堆硬编码If-Else
,但是如果将来有更多的参数怎么办?我正在考虑使用TypeName()
将类型转储到String
数组然后进行比较。但这似乎仍然很麻烦。有没有更好的方法来实现这一目标?
顺便说一句,我认为这不是Optional
一个好主意,因为谁知道会有多少争论?