EXCEL VBA 多个If判断语句简化的问题
发布网友
发布时间:2022-04-26 18:59
我来回答
共3个回答
热心网友
时间:2023-05-03 14:04
建议改用ComboBox控件代替TextBox控件,将ComboBox控件的RowSource属性链接到J2:J30,这样的话,用户不用手工输入姓名了,只要在下拉列表中选择就行了。
当用户选择了ComboBox中的姓名以后,将触发ComboBox_Change事件,可将原来需要根据姓名进行的处理代码放置在这个事件过程中。
热心网友
时间:2023-05-03 14:05
dim st
st=join(application.transpose(range("j2").resize(28,1)).vlaue,",")
if instr(st,textbox1.text) then
有该姓名
else
MsgBox "技师姓名出错 请重新输入"
Exit Sub
End If追问st=join(application.transpose(range("j2").resize(28,1)).vlaue,",")
该语句会报错
追答
哦,换一下
dim st
st = Join(Application.Transpose(Range("d2:d30").Value), ",")
if instr(st,textbox1.text) then
.....有该姓名
else
msgbox "姓名出错,核实" :exit sub
end if
热心网友
时间:2023-05-03 14:05
你是要判断TextBox1里输入的内容是否在J2:J30存在吗?是的话做个循环不就好了
用
For Each i in Range("J2:J30").value
if TextBox1.value=i then
XXXXXX
end if
next i
追问按照你的方法 可以识别 但有个问题 我正常输入技师姓名后 也能正常写入单元格 但仍然会提示技师姓名出错