能否在VBA函数中用单元格替代数组参数?IsInArray2函数调用方法
在Excel工作表中调用IsInArray2函数的方法
一、先确保函数已正确导入
- 打开Excel,按下
Alt+F11进入VBA编辑器 - 右键点击左侧项目窗口中的工作簿名称,选择「插入」→「模块」
- 将你提供的IsInArray2函数代码粘贴到模块中,保存工作簿为启用宏的格式(.xlsm 或 .xlsb)
二、工作表中的调用方式
直接在目标单元格输入公式,语法如下:
=IsInArray2(单个单元格引用, 目标单元格区域)
举个例子:
- 要检查A1单元格的内容是否包含B1:B5区域中任意一个子串,输入:
=IsInArray2(A1, B1:B5)
公式会返回TRUE(匹配到子串)或FALSE(未匹配到)。
三、额外注意事项
- 函数默认忽略大小写:因为代码中用了
LCase转换,所以"Apple"和"apple"会被视为匹配 - 若要排除区域中的空白单元格,可以修改函数代码,在判断条件中增加空值检查:
Function IsInArray2(StringToBeFound As String, MyArray As Variant) As Boolean IsInArray2 = False For i = LBound(MyArray) To UBound(MyArray) ' 新增空值判断,跳过空白单元格 If MyArray(i) <> "" And LCase(StringToBeFound) Like LCase("*" & MyArray(i) & "*") Then IsInArray2 = True Exit Function End If Next End Function - 必须启用宏:如果工作簿宏被禁用,函数会返回
#NAME?错误
内容的提问来源于stack exchange,提问作者Pedro Sousa
相关产品推荐
相关产品推荐

