Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在excel宏中匹配字符串通配符模式_Excel_Worksheet Function - Fatal编程技术网

如何在excel宏中匹配字符串通配符模式

如何在excel宏中匹配字符串通配符模式,excel,worksheet-function,Excel,Worksheet Function,我有一个类似的测试 LEFT('F13',2)='F1' 我想将其从左侧匹配更改为支持通配符的测试 'F13'='F?3' Excel不支持正则表达式,除了在VBA代码中,但我更喜欢在宏中完成。我应该指出,实际的测试不是一个简单的字符串,而是单元格引用(这可能很重要,我不确定): 该范围实际上根据调用宏的位置计算为单个单元格$B$3是用户输入的模式。=SEARCH(“F?3”、“F13”)=1 在第二个示例中,如果B3包含包含通配符的文本 =搜索(B3,$DATA.$A$2:$A$1501)

我有一个类似的测试

LEFT('F13',2)='F1'
我想将其从左侧匹配更改为支持通配符的测试

'F13'='F?3'

Excel不支持正则表达式,除了在VBA代码中,但我更喜欢在宏中完成。我应该指出,实际的测试不是一个简单的字符串,而是单元格引用(这可能很重要,我不确定):

该范围实际上根据调用宏的位置计算为单个单元格$B$3是用户输入的模式。

=SEARCH(“F?3”、“F13”)=1

在第二个示例中,如果B3包含包含通配符的文本

=搜索(B3,$DATA.$A$2:$A$1501)=1


搜索返回找到第一个参数的位置。“= 1”确保字符串以第一个参数开始,而不是在中间的某个位置。我不确定$DATA参数是如何工作的,所以我只是逐字复制了它。

“Excel不支持正则表达式,除非在VBA代码中,但我更希望它是在宏中完成的。”我很困惑:宏是用VBA代码编写的。你的意思是说你更喜欢纯工作表函数/公式吗?我对access有点混淆了,我认为“宏”和“VBA函数”有什么区别。我的意思是一个公式是的。$DATA是一个打字错误,因为它从openoffice复制了函数(它将公式转换为StarBasic)。应该说是数据!因为它是工作表引用。此解决方案失败,因为当找不到字符串时,搜索会引发#值错误。这打破了整个公式。FIND也一样。有没有办法测试#VALUE?如果使用2007,可以使用IFERROR函数作为替代方法
IF(LEFT($DATA.$A$2:$A$1501,LEN($B$3))=$B$3,...