如何強制使用者在輸入時間資料時使用特定格式?

如何強制使用者在輸入時間資料時使用特定格式?

我需要確保特定電子表格的使用者輸入軍事時間的時間資料。我發現有些人省略了冒號,這導致了問題。有沒有辦法強制對一系列儲存格進行特定格式設定?

答案1

我使用的是 Excel 2010,因此我不確定 Excel 2003 中的等效選項在哪裡。

  1. 選擇要限制的儲存格。
  2. 使用適當的數字格式“hh:mm”設定儲存格格式。
  3. 在「資料」功能區(也許是選單?)中,選擇「資料驗證」。
  4. 在「設定」、「驗證標準」下,設定:
    允許=時間
    忽略空白=是
    資料=
    開始時間= 0:00
    結束時間= 23:59:59
    (愚蠢的東西不會接受「小於24:00」 )
  5. 使用者“錯誤警報”,設定:
    樣式 = 停止
    標題 = 時間輸入
    錯誤訊息 = 請使用冒號以 hh:mm 格式鍵入時間。
  6. 按“確定”。

答案2

舊帖子,但這可能有助於一些搜尋谷歌(而且我不是 Excel 專家)

  1. 使用自訂格式將儲存格格式化為文字00\:00
    這將允許使用者在儲存格中輸入軍事時間,而無需使用“:”

  2. 使用下列公式將儲存格 (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")也可以。

相關內容