VBA调用inStr函数出现“list separator expected”编译错误求助
解决VBA InStr函数“缺少列表分隔符”编译错误
你遇到的编译错误是因为VBA对InStr函数命名参数的解析规则导致的——当省略可选的Start参数时,直接使用String1:=这种命名参数写法可能会触发解析歧义,尤其在部分旧版本VBA环境中。
以下是可行的解决方案:
- 最简单的方式是改用位置参数替代命名参数,修改后的代码如下:
Public Function test232() test232 = inStr("hello", ":") End Function
- 如果一定要使用命名参数,需要显式指定
Start参数(哪怕使用默认值1):
Public Function test232() test232 = inStr(Start:=1, String1:="hello", String2:=":") End Function
- 额外检查项:确保模块中没有自定义的
InStr函数(避免与系统内置函数冲突),同时确认代码中的引号、逗号都是英文半角符号。
内容的提问来源于stack exchange,提问作者Vinicius Leite
相关产品推荐
相关产品推荐

