Skip to main content

Conas formáid dáta amháin a cheadú i gcealla ar leith?

Conas a d’fhéadfá liosta cealla a shrianadh chun formáid dáta a iontráil i mbileog oibre Excel amháin? San alt seo, labhróidh mé faoi roinnt cleasanna suimiúla chun déileáil leis an bpost seo.

Ná lig ach formáid dáta i gcealla ar leith a bhfuil feidhm Bailíochtaithe Sonraí acu

Lig formáid dáta amháin i gcealla ar leith le cód VBA


mboilgeog cheart gorm saighead Ná lig ach formáid dáta i gcealla ar leith a bhfuil feidhm Bailíochtaithe Sonraí acu

In Excel, an Bailíochtú Sonraí Is feidhm chumhachtach í a chabhróidh leat liosta anuas a chruthú, chun iontrálacha dúblacha, srl a chosc. Is féidir leis cabhrú leat cosc ​​a chur ar fhormáid sonraí eile a iontráil ach formáid dáta i gcealla ar leith. Déan na céimeanna seo a leanas le do thoil:

1. Cliceáil Dáta > Bailíochtú Sonraí > Bailíochtú Sonraí, féach ar an scáileán:

dáta ceadaigh doc 1

2. Sa an Bailíochtú Sonraí dialóg, cliceáil Socruithe cluaisín, agus ansin roghnaigh An Chustaim ó na Ceadaigh liosta anuas, ansin iontráil an fhoirmle seo: = AGUS (ISNUMBER (B2), LEFT (CELL ("formáid", B2), 1) = "D") isteach sa Foirmle bosca téacs, féach an pictiúr:

dáta ceadaigh doc 2

nótaí: San fhoirmle thuas, B2 Is í an chéad chill den cholún ar mhaith leat srian a chur ar fhormáid na sonraí.

dáta ceadaigh doc 3

3. Ansin téigh ar cliceáil Foláireamh Earráide cluaisín sa bhosca dialóige, déan na hoibríochtaí seo a leanas le do thoil:

(1.) Seiceáil Taispeáin foláireamh earráide tar éis sonraí neamhbhailí a iontráil rogha;

(2.) Faoin stíl titim anuas, roghnaigh le do thoil stad rogha;

(3.) Clóscríobh an Teideal agus Teachtaireacht earráide gur mhaith leat a thaispeáint sa bhosca pras.

4. Tar éis na socruithe a chríochnú, cliceáil OK cnaipe, agus anois, nuair a iontrálann tú na sonraí nach formáid fíordháta iad, tiocfaidh bosca pras amach le cur i gcuimhne duit mar a leanas an pictiúr a thaispeántar:

dáta ceadaigh doc 4


mboilgeog cheart gorm saighead Lig formáid dáta amháin i gcealla ar leith le cód VBA

An dara modh, tabharfaidh mé cód VBA isteach duit.

1. Gníomhachtaigh an bhileog oibre a theastaíonn uait a úsáid.

2. Ansin cliceáil ar dheis ar an táb bileog, agus roghnaigh Féach an cód ón roghchlár comhthéacs, féach an scáileán:

dáta ceadaigh doc 5

3. Sa taispeáint Microsoft Visual Basic d’Fheidhmchláir fuinneog, cóipeáil agus greamaigh an cód thíos sa Modúil, féach ar an scáileán:

Cód VBA: Ná lig ach formáid dáta ag dul isteach i gcealla ar leith:

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

dáta ceadaigh doc 6

4. Ansin sábháil ad dún an cód, anois, nuair a iontrálann tú an luach nach formáid dáta é i raon B2: B12, tiocfaidh bosca pras amach chun tú a mheabhrú, agus glanfar an luach cille ag an am céanna, féach an scáileán:

dáta ceadaigh doc 7

Uirlisí Táirgiúlachta Oifige is Fearr

🤖 Kutools AI Aide: anailís sonraí a réabhlóidiú bunaithe ar: Forghníomhú Chliste   |  Gin Cód  |  Cruthaigh Foirmlí Saincheaptha  |  Anailís a dhéanamh ar Sonraí agus Cairteacha a Ghin  |  Feidhmeanna Kutools a agairt...
Gnéithe Coitianta: Faigh, Aibhsigh nó Aithnigh Dúblaigh   |  Scrios Sraitheanna Bána   |  Comhcheangail Colúin nó Cealla gan Sonraí a Chailleadh   |   Babhta gan Foirmle ...
Cuardaigh Super: Ilchritéir VLookup    VLookup Illuachanna  |   VLookup Trasna Ilbhileoga   |   Amharc doiléir ....
Liosta anuas Casta: Go tapa Cruthaigh Liosta Anuas   |  Liosta anuas Cleithiúnach   |  Liosta Buail Isteach Ilroghnacha ....
Bainisteoir Colún: Cuir Líon Sonrach Colún leis  |  Colúin Bog  |  Scoránaigh Stádas Infheictheachta na gColún Ceilte  |  Déan comparáid idir Raonta & Colúin ...
Gnéithe Réadmhaoin: Fócas Eangaí   |  Amharc Dearaidh   |   Barra Mór na Foirmle    Leabhar Oibre & Bainisteoir Bileog   |  Leabharlann Acmhainní (Uaththéacs)   |  Piocálaí Dáta   |  Comhcheangail Bileoga Oibre   |  Criptigh/Díchriptigh Cealla    Seol Ríomhphost trí Liosta   |  Scagaire Super   |   Scagaire Speisialta (scagaire trom/iodálach/stailc tríd...) ...
Barr 15 Uirlisí12 Téacs uirlisí (Cuir Téacs, Bain Carachtair,...)   |   50 + Cairt cineálacha (Cairt Gantt,...)   |   40+ Praiticiúil Foirmlí (Ríomh aois bunaithe ar lá breithe,...)   |   19 Insertion uirlisí (Cuir isteach Cód QR, Ionsáigh Pictiúr ón gCosán,...)   |   12 Tiontú uirlisí (Uimhreacha le Focail, Comhshó Airgeadra,...)   |   7 Cumaisc & Scoilt uirlisí (Sraitheanna Comhcheangail Casta, Cealla Scoilt,...)   |   ... agus eile

Supercharge Do Scileanna Excel le Kutools le haghaidh Excel, agus Éifeachtúlacht Taithí Cosúil Ná Roimhe. Kutools le haghaidh Excel Tairiscintí Níos mó ná 300 Ardghnéithe chun Táirgiúlacht a Treisiú agus Sábháil Am.  Cliceáil anseo chun an ghné is mó a theastaíonn uait a fháil ...

Tuairisc


Tugann Tab Oifige comhéadan Tabbed chuig Office, agus Déan Do Obair i bhfad Níos Éasca

  • Cumasaigh eagarthóireacht agus léamh tabbed i Word, Excel, PowerPoint, Foilsitheoir, Rochtain, Visio agus Tionscadal.
  • Oscail agus cruthaigh cáipéisí iolracha i gcluaisíní nua den fhuinneog chéanna, seachas i bhfuinneoga nua.
  • Méadaíonn do tháirgiúlacht 50%, agus laghdaíonn sé na céadta cad a tharlaíonn nuair luch duit gach lá!

 

Comments (11)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Buenos dias

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

Muchas gracias
This comment was minimized by the moderator on the site
Hi I want to restrict the Date Format in DD.MM.YYYY in excel
May please suggest
This comment was minimized by the moderator on the site
Hello, Ramesh
To restrict the Date Format in DD.MM.YYYY, you can apply the below code:
Note: Please change the cell reference B2:B12 to your own list of cell.
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


Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hello,Sorry for refreshing, the code works very nice, thank you. I just want to add one more check if its possible.Is it possible to check cell on the left if it contain certain value. Basically what I need is: if cell on the left contain N then that cell in range have to be input as a date.If cell on the left is Y then that cell needs to stay blank.
This comment was minimized by the moderator on the site
How can I oblige to enter a time? (hh:mm)Private Sub Worksheet_Change(ByVal Target As Range)
'updateby Extendoffice 20150530
Set w = ActiveSheet.Range("B2:B12")
For Each c In w
If c.Value <> "" And Not IsDate(c) Then <----------------------------And Not isTime(c) doesn't work!
c.ClearContents
MsgBox "Only a date format is permitted in this cell."
End If
Next c
End Sub
This comment was minimized by the moderator on the site
Hello, Roberto,

To only allow time format to be entered, you should apply the below code:



Private Sub Worksheet_Change(ByVal Target As Range)

'updateby Extendoffice

Dim xArr As Variant

Dim xF As Integer

Dim xB As Boolean

Dim xWRg, xCRg As Range

Set xWRg = ActiveSheet.Range("B2:B20")

For Each xCRg In xWRg

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

xB = False

If UBound(xArr) <= 2 Then

For xF = LBound(xArr) To UBound(xArr)

If IsNumeric(xArr(xF)) Then

If xF = 0 Then

If (xArr(xF) > 0) And (xArr(xF) < 24) Then

Else

xB = True

GoTo BTime

End If

Else

If (xArr(xF) > 0) And (xArr(xF) < 60) Then

Else

xB = True

GoTo BTime

End If

End If

Else

xB = True

GoTo BTime

End If

Next

Else

MsgBox "Only a time format is permitted in this cell."

xCRg.ClearContents

End If

BTime:

If xB Then

MsgBox "Only a time format is permitted in this cell."

xCRg.ClearContents

End If

Next xCRg

End Sub



Please try it, thank you!
This comment was minimized by the moderator on the site
Thank you so much, for the VBA code to be applied to multiple columns can you please provide the formula?.. I tried but ended up getting a 405 error!
This comment was minimized by the moderator on the site
Hello, Kevin,
To make the code applied for multiple ranges, you just need to add the cell references into the code as below:

Private Sub Worksheet_Change(ByVal Target As Range)
Set w = ActiveSheet.Range("B2:B12,A1:A10,C5:C20")
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

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Thanks a lot @skyyang, really appreciate your help :)
This comment was minimized by the moderator on the site
how to add a date validation for date format "DD-mmm-yyy" (15-Dec-2018) like this
This comment was minimized by the moderator on the site
which date format is this function allowed. It is not working for some dates
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations