如以下代码:
Private Sub CommandButton1_Click()
If Sheet1.Range("A65536").End(xlUp).Offset(0, 0) <> "" Then
With TextBox1
If TextBox1 = Range("J2").Value Or TextBox1 = Range("J3").Value _
TextBox1 = Range("J4").Value Or TextBox1 = Range("J5").Value Then
Sheet1.Range("A65536").End(xlUp).Offset(0, 1) = .Text
.Text = ""
Else
MsgBox "技师姓名出错 请重新输入"
Exit Sub
End If
End With
With TextBox2
Sheet1.Range("A65536").End(xlUp).Offset(0, 2) = .Text
.Text = ""
End With
Unload Me
Else
MsgBox "未发现该工单号"
End If
End Sub
我在Sheet1 J2:J30 内填入技师姓名 要求第2个IF 判断语句 先判断TextBox1内输入内容是否为J2:J30的任意一个 如果不是则结束 但因J2:J30个单元格内有29名技师 可有办法进行简化
EXCEL VBA 多个If判断语句简化的问题
答案:3 悬赏:20
解决时间 2021-04-07 07:38
- 提问者网友:冷场帝
- 2021-04-06 22:49
最佳答案
- 二级知识专家网友:时光不老我们不分离
- 2021-04-06 23:38
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,",")
if instr(st,textbox1.text) then
有该姓名
else
MsgBox "技师姓名出错 请重新输入"
Exit Sub
End If
全部回答
- 1楼网友:湫止没有不同
- 2021-04-07 01:51
不用vba吧。在g2输入
=if(countif(a:a,e2)=0,1,0)
公式向下复制。意思是,如果a列里有e2的数,返回1,否则返回0.
非要用vba代码,可以再问,但我觉得没意义。
- 2楼网友:24K纯糖
- 2021-04-07 00:16
建议改用ComboBox控件代替TextBox控件,将ComboBox控件的RowSource属性链接到J2:J30,这样的话,用户不用手工输入姓名了,只要在下拉列表中选择就行了。
当用户选择了ComboBox中的姓名以后,将触发ComboBox_Change事件,可将原来需要根据姓名进行的处理代码放置在这个事件过程中。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯