用单个参数编写一个具有多个选项的Excel公式
我想从基于HTTP的API访问信息并使用excel进行操作。
API返回约20条信息,您可以通过查找任意数量的约10个查找字段来获取该信息:名称,序列号等。
我想写一个类似于匹配函数在Excel中的函数 ,其中一个参数(在这种情况下匹配types)有多个可能的值。
我有一个值列表(API可以返回的20条信息),我想使这些信息的函数参数之一的可能的返回值。
我该如何创build一个函数,其中一个参数具有可能的值列表? 那么如何将工具提示帮助语句添加到这些参数选项,以便人们知道它们是什么?
你想使用一个枚举 。
在模块的声明部分(在任何子或函数之前),您可以像这样放置代码。
Enum MyFunctionsArgValue LessThan Equal GreaterThan End Enum
这将为这些关键字分配一个整数值,从零开始计数。 所以LessThan = 0
, Equal = 1
, GreaterThan = 2
。 (你实际上可以开始任何你想要的数字,但默认情况下通常很好。)
现在你可以在你的函数中使用它。
Function MySuperCoolFunction(matchType as MyFunctionsArgValue) Select Case matchType Case LessThan ' do something Case Equal ' do it different Case GreaterThan ' do the opposite of LessThan End Select End Function
要获得工具提示,您需要使用称为Attribute
东西。 为了将其添加到您的代码中,您需要导出* .bas(或* .cls)文件并在常规文本编辑器中打开它。 添加完成后,您需要重新导入。这些属性在VBA IDE内部是不可见的。 文档是粗略的(阅读“不存在”),所以我不知道这适用于一个Enum
,但我知道它适用于函数和模块范围的variables。
function/分
Function MySuperCoolFunction(matchType as MyFunctionsArgValue) Attribute MySuperCoolFunction.VB_Description = "tool tip text"
模块范围variables
Public someVar As String Attribute someVar.VB_VarDescription = "tooltip text"
所以,你可以试试看看它是否有效。
Enum MyFunctionsArgValue Attribute MyFunctionsArgValue.VB_VarDescription = "tool tip text" LessThan Equal GreaterThan End Enum
资源