用单个参数编写一个具有多个选项的Excel公式

我想从基于HTTP的API访问信息并使用excel进行操作。

API返回约20条信息,您可以通过查找任意数量的约10个查找字段来获取该信息:名称,序列号等。

我想写一个类似于匹配函数在Excel中的函数 ,其中一个参数(在这种情况下匹配types)有多个可能的值。

我有一个值列表(API可以返回的20条信息),我想使这些信息的函数参数之一的可能的返回值。

在这里输入图像说明

我该如何创build一个函数,其中一个参数具有可能的值列表? 那么如何将工具提示帮助语句添加到这些参数选项,以便人们知道它们是什么?

你想使用一个枚举 。

在模块的声明部分(在任何子或函数之前),您可以像这样放置代码。

 Enum MyFunctionsArgValue LessThan Equal GreaterThan End Enum 

这将为这些关键字分配一个整数值,从零开始计数。 所以LessThan = 0Equal = 1GreaterThan = 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 

资源