VBA用户窗体ComboBox值匹配代码报错:Find函数未定义编译错误
VBA用户窗体ComboBox匹配问题解决办法
编译错误原因
VBA中没有内置的Find函数,你误用了Excel工作表函数的写法,导致编译报错。需使用VBA原生的InStr函数来定位子字符串位置。
修正后的代码
Dim dashPos As Integer ' 查找" - "在ComboBox2值中的起始位置 dashPos = InStr(Me.ComboBox2.Value, " - ") If dashPos > 0 Then ' 提取" - "左侧内容并与ComboBox1的值比较 If Left(Me.ComboBox2.Value, dashPos - 1) <> Me.ComboBox1.Value Then MsgBox "The tag of " & Me.ComboBox2.Tag & " does not match with selected BIN" Exit Sub End If Else ' 处理无分隔符的异常情况 MsgBox "ComboBox2的值格式错误,未找到"" - ""分隔符" Exit Sub End If
关键修正点
- 用VBA原生的
InStr替代不存在的Find函数,InStr返回子字符串的起始位置,找不到则返回0 - 增加了对
ComboBox2值中没有" - "的情况判断,避免运行时错误 - 修正了原代码中
m2.ComboBox2.Tag的拼写错误,改为Me.ComboBox2.Tag - 显式使用
.Value属性,代码可读性更强
内容的提问来源于stack exchange,提问作者NewbieNils
相关产品推荐
相关产品推荐

