Ввод или импорт времени без двоеточий (Microsoft Excel)
Когда вы вводите время в ячейку, Excel указывает наличие двоеточия между часами и минутами времени. Однако из-за положения двоеточия на клавиатуре ввод двоеточия для каждого вводимого значения времени может замедлить вас, особенно если у вас есть несколько значений времени для ввода.
По этой причине вы можете задаться вопросом, есть ли способ пропустить ввод двоеточия и ввести их автоматически или сразу.
Для их автоматического ввода требуется немного больше усилий, требующих использования макроса, о чем мы вскоре поговорим. Ввести сразу все двоеточия можно с помощью формулы, как показано ниже:
=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. Если это не так, макрос завершает работу. Он также проверяет, что выбрана только одна ячейка и что ячейка не пуста. Если все эти критерии соблюдены, то макрос проверяет длину значения в ячейке и при необходимости дополняет его ведущими нулями. Этот макрос основан на макросе, найденном на сайте Чипа Пирсона, здесь:
http://cpearson.com/excel/DateTimeEntry.htm
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2412) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Entering_or_Importing_Times_without_Colons [Ввод или импорт времени без двоеточий]
.