我需要確保特定電子表格的使用者輸入軍事時間的時間資料。我發現有些人省略了冒號,這導致了問題。有沒有辦法強制對一系列儲存格進行特定格式設定?
答案1
我使用的是 Excel 2010,因此我不確定 Excel 2003 中的等效選項在哪裡。
- 選擇要限制的儲存格。
- 使用適當的數字格式“hh:mm”設定儲存格格式。
- 在「資料」功能區(也許是選單?)中,選擇「資料驗證」。
- 在「設定」、「驗證標準」下,設定:
允許=時間
忽略空白=是
資料=
開始時間= 0:00
結束時間= 23:59:59
(愚蠢的東西不會接受「小於24:00」 ) - 使用者“錯誤警報”,設定:
樣式 = 停止
標題 = 時間輸入
錯誤訊息 = 請使用冒號以 hh:mm 格式鍵入時間。 - 按“確定”。
答案2
舊帖子,但這可能有助於一些搜尋谷歌(而且我不是 Excel 專家)
使用自訂格式將儲存格格式化為文字
00\:00
這將允許使用者在儲存格中輸入軍事時間,而無需使用“:”使用下列公式將儲存格 (EG E16) 上的資料驗證選項設定為自訂
=AND(ISNUMBER(E16),(VALUE(LEFT(TEXT(E16,"00\:00"),2))>=0),(VALUE(LEFT(TEXT(E16,"00\:00"),2))<=23),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))>=0),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))<=59))
驗證檢查它是否為數字,然後檢查時間值的 HH 側是否在 0 到 23 之間,然後檢查 MM 是否在 0 到 59 之間。
答案3
我使用相同的方法來限制軍事時間,但是,數據驗證接受粗手指整體(冒號後面的三位數字),然後顯示不正確時間。例如如果你想輸入13:44為了你的時間,不小心把13:444,它不僅需要它,而且顯示一個時間20:24
那20:24時間正是我輸入的小時 (13) 加上轉換為小時:分鐘 (7:24) 的 444 分鐘,而不是所需的13:44它給13:00+7:24或者20:24。
現在,我了解了數學原理以及為什麼 Excel 將 444 分鐘轉換為 7:24,但這不應該出現在資料驗證條目中。由於這是資料驗證,它應該將 444 截斷為 44 或給出錯誤訊息。
答案4
我想建議 VBA(巨集)將處理指定列或範圍中的時間輸入。該巨集會將任意 4 位數值轉換為適當的時間格式。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Dim xHour As String
Dim xMinute As String
Dim xWord As String
Application.EnableEvents = False
xWord = Format(Target.Value, "0000")
xHour = Left(xWord, 2)
xMinute = Right(xWord, 2)
On Error Resume Next
Target.Value = TimeValue(xHour & ":" & xMinute)
On Error Resume Next
Application.EnableEvents = True
End Sub
注意
- 如果您輸入
1725
宏,會將其轉換為05:25:00 PM
. Range ("A:A")
是可編輯的,它應該Range("A1:A10")
或Range("B10:C10")
也可以。