我也是才會
資料:
大家都知道,在Excel 中輸入時間是需要帶上冒號的,如果有大量的時間值等待輸入的話,這個冒號可得耽誤不少功夫,而且又容易輸入錯誤。
有什麽好辦法可以解決這個難題呢?當然是用嵌套在Excel裏的利器VBA了!以下就是所有源代碼,只要您按照我的說法壹步壹步做下去,即使對這些代碼壹點也不懂,也能依葫蘆畫瓢,迅速實現在Excel中不必輸入冒號就能輸入時間值的效果!
壹、 啟動Excel,打開您需要大量輸入時間值的那個工作簿,然後按Alt-F11,啟動VBA編輯器。
二、 選擇菜單中“插入”——“添加模塊”命令。這時,在屏幕左上方“工程”窗口中,會出現壹個“模塊”的子目錄,在它的右側,顯示著剛剛添加進來的模塊“Module1”,您可以將它改名為您所喜歡的名字如“fasttime”。
三、 雙擊模塊“fasttime”(如果您修改過模塊名稱的話),在右側的代碼編輯器中輸入以下代碼(或者從我的示例工作簿中復制)。
Option Explicit
Sub Auto_Open()
Application.OnEntry = "Fast" '每當工作表內容發生變化時就運行指定過程
End Sub
Sub Fast()
On Error GoTo EnterError '如果有錯誤就跳往EnterTimeError語句
If Intersect(Application.Caller, Range("fasttime")) Is Nothing Then
Exit Sub '如果是非"fasttime"區域的單元格被改變,則結束過程
End If
'如果輸入值小於1或者大於2400,則顯示對話框用戶輸入值非法
If Application.Caller < 1 Or Application.Caller > 2400 Then
MsgBox "對不起,您的輸入值非法!", vbExclamation
Application.Caller.Value = ""
Exit Sub
End If
'\ 將輸入值改成 HH:MM格式
Application.Caller.Value = Format(Application.Caller, "00:00")
Exit Sub
EnterError:
Exit Sub
End Sub
四、把您將要大量輸入時間值的單元格區域命名為“fasttime”。命名方法為,先將需要命名的單元格區域抹黑,然後選擇Excel的菜單命令“插入”——“命名”——“定義”,在“在當前工作簿中的名稱”欄中輸入“fasttime”,最後按確定即可。
好了,完工!現在往“fasttime”區域裏輸入時間值試試看,是不是不用冒號了!?這裏需要註意的是,輸入值必須介於1到2400之間,否則將被視作非法值。舉個例子來說,如果您需要輸入上午九點二十分這樣壹個時間值,您就只需要輸入0920這樣壹個數字就行了,Excel將在單元格中顯示為“09:20 AM”;如果您需要輸入晚上壹十壹點壹十五分這樣壹個時間值,您就只需要輸入2315這樣壹個數字就行了,Excel將在單元格中顯示為“11:15 PM”。是不是很方便?