هنگامی که زمانی را در یک سلول وارد می کنید، اکسل وجود دو نقطه بین ساعت و دقیقه زمان را کلید می زند. با این حال، به دلیل موقعیت دونقطه روی صفحه کلید، وارد کردن یک دو نقطه برای هر مقدار زمانی که وارد می کنید، می تواند سرعت شما را کاهش دهد – به خصوص اگر مقدار کمی زمانی برای وارد کردن دارید.
به همین دلیل، ممکن است تعجب کنید که آیا راهی وجود دارد که از ورود به کولون صرفنظر کنید و یا به طور خودکار وارد شوند یا یکباره وارد شوند. وارد کردن آنها به صورت خودکار کمی کار بیشتری را می طلبد، نیاز به استفاده از ماکرو دارد و به زودی پوشش داده خواهد شد. وارد کردن کولون ها به یکباره می تواند با یک فرمول انجام شود، مانند شکل زیر:
=TIMEVALUE(REPLACE(A1,3,0,":"))
این فرمول فرض می کند که مقدار زمان (بدون دو نقطه) در سلول A1 است و از چهار رقم تشکیل شده است. بنابراین، اگر سلول A1 حاوی مقداری مانند 1422 باشد، فرمول 14:22 را به عنوان مقدار زمان واقعی برمی گرداند. (شاید لازم باشد سلول را به عنوان مقدار زمانی قالب بندی کنید.)
اگر سلول ورودی اصلی شما ممکن است دارای زمانی باشد که فقط از سه رقم استفاده می کند، مانند 813 به جای 0813، پس باید از فرمول کمی متفاوت استفاده کنید:
=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)
اگر ترجیح می دهید درج کولون ها به صورت خودکار انجام شود، می توانید از ماکرو استفاده کنید. می توانید یک ماکرو ایجاد کنید که محدوده ای از سلول ها را بررسی می کند که در آن قصد دارید تاریخ ها را به کاربرگ اضافه کنید، و سپس دو نقطه را در ورودی وارد کنید. این کار با ایجاد یک ماکرو که توسط رویداد SheetChange فعال می شود، انجام می شود. ماکرو زیر یکی از این موارد است:
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Dim TimeStr As String
On Error GoTo EndMacro
If Application.Intersect(Target, Range("C7:D15")) Is Nothing Then
Exit Sub
End If
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Target.Value = "" Then
Exit Sub
End If
Application.EnableEvents = False
With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 e.g., 1 = 00:01 AM
TimeStr = "00:0" & .Value
Case 2 e.g., 12 = 00:12 AM
TimeStr = "00:" & .Value
Case 3 e.g., 735 = 7:35 AM
TimeStr = Left(.Value, 1) & ":" & _
Right(.Value, 2)
Case 4 e.g., 1234 = 12:34
TimeStr = Left(.Value, 2) & ":" & _
Right(.Value, 2)
Case Else
Err.Raise 0
End Select
.Value = TimeValue(TimeStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "You did not enter a valid time"
Application.EnableEvents = True
ActiveCell.Offset(-1, 0).Select
End Sub
اولین کاری که ماکرو انجام می دهد این است که بررسی کند آیا داده هایی که به تازگی وارد شده اند در محدوده C7:D15 هستند یا خیر. اگر اینطور نبود، ماکرو خارج می شود. همچنین بررسی می کند که فقط یک سلول انتخاب شده باشد و سلول خالی نباشد. اگر همه این معیارها برآورده شوند، ماکرو طول مقدار موجود در سلول را بررسی می کند و در صورت لزوم آن را با صفرهای ابتدایی حذف می کند. این ماکرو بر اساس یک ماکرو است که در سایت Chip Pearson در اینجا یافت شده است:
http://cpearson.com/excel/DateTimeEntry.htm