Note: The other languages of the website are Google-translated. Back to English

如何在特定單元格中僅允許日期格式?

您如何將單元格列表限制為僅允許在Excel工作表中輸入日期格式? 在本文中,我將討論處理此工作的一些有趣技巧。

通過數據驗證功能僅允許特定單元格中的日期格式

使用VBA代碼在特定單元格中僅允許日期格式


箭頭藍色右氣泡 通過數據驗證功能僅允許特定單元格中的日期格式

在Excel中, 數據驗證 是一項功能強大的功能,可以幫助您創建下拉列表,防止重複輸入等。它還可以幫助您防止在特定單元格中輸入其他數據格式,而只能輸入日期格式。 請執行以下步驟:

1。 點擊 數據 > 數據驗證 > 數據驗證,請參見屏幕截圖:

doc允許日期1

2。 在 數據驗證 對話框,單擊 設定 標籤,然後選擇 習俗 來自 下拉列表,然後輸入以下公式: = AND(ISNUMBER(B2),LEFT(CELL(“ format”,B2),1)=“ D”)公式 文本框,請參見屏幕截圖:

doc允許日期2

備註:在以上公式中, B2 是您要限制數據格式的列的第一個單元格。

doc允許日期3

3. 然後繼續點擊 錯誤警報 對話框中的“標籤”,請執行以下操作:

(1.)檢查 輸入無效數據後顯示錯誤警報 選項;

(2.)在 次數 下拉菜單,請選擇 停止 選項;

(3.)鍵入 職稱錯誤信息 要在提示框中顯示的內容。

4。 完成設置後,單擊 OK 按鈕,現在,當您輸入非實時日期格式的數據時,將彈出一個提示框提醒您,如下所示的屏幕截圖:

doc允許日期4


箭頭藍色右氣泡 使用VBA代碼在特定單元格中僅允許日期格式

第二種方法,我將為您介紹一個VBA代碼。

1。 激活您要使用的工作表。

2。 然後右鍵單擊工作表標籤,然後選擇 查看代碼 從上下文菜單中,查看屏幕截圖:

doc允許日期5

3。 在顯示 Microsoft Visual Basic for Applications 窗口,將以下代碼複製並粘貼到 模塊,請參見屏幕截圖:

VBA代碼:僅允許在特定的單元格中輸入日期格式:

Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
Set w = ActiveSheet.Range("B2:B12")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub

doc允許日期6

4。 然後保存廣告並關閉代碼,現在,當您輸入範圍為B2:B12的非日期格式的值時,將彈出提示框提醒您,同時將清除單元格值,請參見屏幕截圖:

doc允許日期7


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部

 

按評論排序
留言 (11)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
此功能允許使用哪種日期格式。 它不適用於某些日期
網站主持人對此評論進行了最小化
如何像這樣為日期格式“DD-mmm-yyy”(15 年 2018 月 XNUMX 日)添加日期驗證
網站主持人對此評論進行了最小化
非常感謝,將 VBA 代碼應用於多個列,您能提供公式嗎?.. 我試過但最終得到 405 錯誤!
網站主持人對此評論進行了最小化
你好,凱文,
要使代碼適用於多個範圍,您只需將單元格引用添加到代碼中,如下所示:

Private Sub Worksheet_Change(ByVal Target As Range)
設置 w = ActiveSheet.Range("B2:B12,A1:A10,C5:C20")
對於每個 c In w
如果 c.Value <> "" 而不是 IsDate(c) 則
c.清除內容
MsgBox "此單元格中只允許使用日期格式。"
如果結束
接下來c
END SUB

請嘗試,希望對您有所幫助!
網站主持人對此評論進行了最小化
非常感謝@skyyang,非常感謝您的幫助:)
網站主持人對此評論進行了最小化
我如何強制輸入時間? (hh:mm)Private Sub Worksheet_Change(ByVal Target As Range)
'更新 Extendoffice 20150530
設置 w = ActiveSheet.Range("B2:B12")
對於每個 c In w
If c.Value <> "" And Not IsDate(c) Then <----------------------------------------And Not isTime(c)不工作!
c.清除內容
MsgBox "此單元格中只允許使用日期格式。"
如果結束
接下來c
END SUB
網站主持人對此評論進行了最小化
你好,羅伯托,

要只允許輸入時間格式,您應該應用以下代碼:



Private Sub Worksheet_Change(ByVal Target As Range)

'更新 Extendoffice

將 xArr 調暗為變體

將 xF 調暗為整數

將 xB 調暗為布爾值

將 xWRg、xCRg 調暗為範圍

設置 xWRg = ActiveSheet.Range("B2:B20")

對於 xWRg 中的每個 xCRg

xArr = Split(xCRg.Value, ":")

xB = 假

如果 UBound(xArr) <= 2 那麼

對於 xF = LBound(xArr) 到 UBound(xArr)

If IsNumeric(xArr(xF)) 那麼

如果 xF = 0 那麼

如果 (xArr(xF) > 0) 並且 (xArr(xF) < 24) 那麼

其他

xB = 真

轉至 BTime

如果結束

其他

如果 (xArr(xF) > 0) 並且 (xArr(xF) < 60) 那麼

其他

xB = 真

轉至 BTime

如果結束

如果結束

其他

xB = 真

轉至 BTime

如果結束

下一頁

其他

MsgBox "此單元格中只允許使用時間格式。"

xCRg.ClearContents

如果結束

時間:

如果 xB 那麼

MsgBox "此單元格中只允許使用時間格式。"

xCRg.ClearContents

如果結束

下一個 xCRg

END SUB



請嘗試一下,謝謝!
網站主持人對此評論進行了最小化
您好,抱歉刷新,代碼工作得很好,謝謝。 如果可能的話,我只想再添加一個檢查。是否可以檢查左側的單元格是否包含某個值。 基本上我需要的是:如果左側的單元格包含 N,則必須輸入範圍內的單元格作為日期。如果左側的單元格是 Y,則該單元格需要保持空白。
網站主持人對此評論進行了最小化
您好我想在 Excel 中限制 DD.MM.YYYY 中的日期格式
可以請建議
網站主持人對此評論進行了最小化
你好,拉梅什
要限制 DD.MM.YYYY 中的日期格式,您可以應用以下代碼:
備註: 請更改單元格引用 B2:B12 到您自己的單元格列表。
Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice
    On Error Resume Next
    
    Dim Bool As Boolean
    Dim Rg As Range
    Dim xRegEx As Object
    
    Bool = False

    Set Rg = Application.Intersect(Target, ActiveSheet.Range("B2:B12"))
    If Rg Is Nothing Then Exit Sub

    Set xRegEx = CreateObject("VBSCRIPT.REGEXP")
    With xRegEx
        .Pattern = "^[0-3]\d\.[0-1][0-2]\.\d{4}$"
        .Global = True
        .IgnoreCase = True
    End With
    
    Application.EnableEvents = False
    For Each c In Target
        If c.Value <> "" Then
            If Not xRegEx.test(c.Text) Then
                c.ClearContents
                Bool = True
            End If
        End If
    Next c
    Application.EnableEvents = True
    If Bool Then
        MsgBox "Error date format."
    End If
End Sub


請試一試,希望對您有所幫助!
網站主持人對此評論進行了最小化
早安

Estoy utilizando la formula en la validación de datos pero no me deja ingresar ningún formato de fecha, me puede explicar por favor 無用

非常感謝
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護