楼主:
yimean (温柔杀手)
2018-09-20 16:18:50软件:Excel
版本:2007
各位板上的大大下午好,我写了一个VBA用于纪录接单资料。
其中包含了一个下拉选单。一个资料清除按钮,一个资料储存按钮。
下拉式选单是选择接单单位,资料清除按钮是在资料储存之后把页面上的资料全部清除。
目前有遇到一个问题,我在下拉式选单有默认一个值,该值目的是为了提醒使用者要记
得选取。
但是当使用者Key完了一张单子之后,不会关闭页面就继续Key下一张单子,下拉式选单
会保持在使用者上一次选取的状态。
如果使用者忘了修改,那么就有可能会输入错的值。
所以我想在按下资料清除按钮之后,把下拉式的选单回归到默认值,请问应该要怎么做?
下方是我目前下拉式选单的程式。
Public Sub Order_taking_department_GotFocus()
With ActiveSheet.Order_taking_department
.AddItem "A单位"
.AddItem "B单位"
.Value = "请选择接单单位"
End With
End Sub
Private Sub Order_taking_department_Change()
'下拉选单
[A1].Value = Order_taking_department.Value
End Sub
因为我不知道应该要怎么样用VBA去触发GotFocus。
烦请大大指导,感谢。
作者: soyoso (我是耀宗) 2018-09-20 16:28:00
是指回归默认值是指?gotfocus重复触发下会持续新增item,而希望只显示a,b单位吗?如果是的话可先在additem前先clear
楼主:
yimean (温柔杀手)
2018-09-20 16:32:00是当我按下清除资料按钮的时候,我的下拉式选单会显示"请选择接单单位"
作者: soyoso (我是耀宗) 2018-09-20 16:42:00
那在按钮触发时,将order_taking_department= "请选择接单单位";这里已触发了下拉选单change事件,所以在change内判断当order_taking_department非<>"请选择接单单位"时填入资料
楼主:
yimean (温柔杀手)
2018-09-21 08:28:00不好意思请问"非<>"这个是代表什么意思?Change事件不是我要去按他选择值才算触发吗?所以,这个程式其实很有问题,一旦我一直去点选,那我的Item就会一直增加。如果是这样的状况我应该要怎么处理?书上的范例是这样写的~>.<~哈哈 我看到了,您第三行就解答我的疑惑了。感谢。接下来我的问题还是,如何用另外一个按钮,来让下拉式选单显示Default的状态。
作者:
newacc (XD)
2018-09-21 09:36:00如果把AddItem写在Worksheet_Initialize()里,然后按钮就只需要触发把Value改成默认,会不会比较好实作?
作者: soyoso (我是耀宗) 2018-09-21 09:38:00
非<>是指不等于"请选择接单单位"写法为 order_taking_department <> "请选择接单单位"另外一个按妞,来让下拉式选单显示default("请选择接单单位")的状态上,回文在按钮触发时,order_taking_department= "请选择接单单位",来显示default的值方面是否合适呢
楼主:
yimean (温柔杀手)
2018-09-21 11:46:00资料更新
作者:
newacc (XD)
2018-09-21 12:15:00%Private Sub button_Click()CleanDataOrder_taking_department = "请选择接单单位"End SubPublic Sub Order_taking_department_GotFocus()With ActiveSheet.Order_taking_department.Clean.AddItem "A单位".AddItem "B单位"End WithEnd SubPrivate Sub Order_taking_department_Change()'下拉选单If Order_taking_department <> "请选择接单单位" Then[A1].Value = Order_taking_department.ValueEnd IfEnd Sub这样做的原因是你赋予选单value的时候,就会触发Changeevent,因此在里面加一个判断,如果是默认值代表使用者尚未选择,所以只有不等于默认值时才要写入[A1]
作者: soyoso (我是耀宗) 2018-09-21 13:48:00
原po或n大测试上.clean都不会出错?测试是出现执行阶段错误'438,物件不支援此属性或方法如回文为 .clear的方式
楼主:
yimean (温柔杀手)
2018-09-21 14:02:00@Soyoso大大抱歉,您是对的。.Clear@newacc 感谢我试试看。
作者:
newacc (XD)
2018-09-21 18:22:00被抓到我没有测试了( ̄▽ ̄#)﹏﹏