作者:
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被抓到我沒有測試了( ̄▽ ̄#)﹏﹏