中易网

EXCEL VBA 多个If判断语句简化的问题

答案:3  悬赏:20  
解决时间 2021-04-07 07:38
如以下代码:
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名技师 可有办法进行简化
最佳答案
dim st
st=join(application.transpose(range("j2").resize(28,1)).vlaue,",")
if instr(st,textbox1.text) then
有该姓名
else
MsgBox "技师姓名出错 请重新输入"
Exit Sub
End If
全部回答
不用vba吧。在g2输入 =if(countif(a:a,e2)=0,1,0) 公式向下复制。意思是,如果a列里有e2的数,返回1,否则返回0. 非要用vba代码,可以再问,但我觉得没意义。
建议改用ComboBox控件代替TextBox控件,将ComboBox控件的RowSource属性链接到J2:J30,这样的话,用户不用手工输入姓名了,只要在下拉列表中选择就行了。 当用户选择了ComboBox中的姓名以后,将触发ComboBox_Change事件,可将原来需要根据姓名进行的处理代码放置在这个事件过程中。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
会计科目是( )。 A.会计要素的名称 B.会
为什么三星手机用一段时间就会自动重启重启之
木板与铁皮之间用什么胶水固定比较好,木板、
红贵族·形象设计地址在哪,我要去那里办事
我有一个喜利得电锤,70的现在红灯亮了是怎么
CROSSMEMBER ASM-DRIVETRAIN 是汽车的什么零
旅游时 跟团购物 用日语怎么说?
长城宽带大浪营业厅怎么去啊,有知道地址的么
关于windows7玩魔兽和穿越火线 这两款游戏的
谁有安国(AlcorMP)的量产工具 设备ID : VID =
求好看的立志动漫
,怎么确定女是不是真的想分手
急急急!求一篇关于马克思的演讲稿,写一些生
手机停机,如何查欠费,10086语音老是流量播
创业找合伙人 靠谱吗
推荐资讯
黄秋生全部的电影
手机电视包月还会产生流量吗
囗+囗+囗=30
洛宁县在什么地方啊,我要过去处理事情
不管结局是悲还是喜你都是我深爱过的唯一什么
追阿部美幸老师的漫画八犬传之东方八犬异闻录
天天被不同的人嘲笑,辱骂恶心,不干净,天天
布加迪—爱马仕英文怎麼写?
广东:我的会计证是属广州市天河区的,报2012
金杯车改的轻型厢式货车能上高架吗?
QQ分组3组,所代表的是,喜欢的人,朋友,不
会议室适合房什么样的落地绿植
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?