Страницы: 1
RSS
Проверить в нужном ли формате записана дата в ячейке
 
Здравствуйте. Как можно проверить ячейку на то, заполнена ли она по формату "dd/MM/yyyy"?
Именно сама дата внутри ячейки, а не формат ячейки.
 
а есть пример? Потому что эксель приводит введенное значение к формату, установленному для ячейки, если сможет распознать значение. То есть в случае дат - даже если введем dd/MM/yyyy в ячейку с форматом dd.MM.yyyy, то слэши заменятся на точки автоматически, и найти их в ячейке будет уже нельзя....
 
p.s. Именно сам текст ячейки. Так как при выставлении формата ячейки по "dd/MM/yyyy" можно прописать, например, 11.2022 и текст ячейки будет "ноя.22", а значение будет 01.11.2022.
 
Елена Черняк, Слешы в проверке не нужны, прописал их просто как в Format(date, "dd/MM/yyyy"). Нужно проверять сам текст ячейки, чтоб там было прописаны все три пункта (день.месяц.год), а не (ноя.2022 при заполнении ячейки 11.2022)
Изменено: Андрей Нечитаев - 21.10.2022 11:20:37
 
правильно ли записана дата 01.01.2022?
 
mechanix 85,
Есть ячейка с форматом даты. Если в неё записать 11.2022, то текст ячейки будет "Ноя. 2022", а значение "01.11.2022".
Нужна проверка, чтоб текст был равен значению.

Плохо наверное объясняю, простите)
 
Код
Function LikeAsDDMMYYYY(v) As Boolean
  LikeAsDDMMYYYY = v Like "##/##/####"
End Function
Изменено: Ігор Гончаренко - 21.10.2022 11:24:42
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Благодарю
 
UDF
Код
Function iDate(cell$) As Date
 With CreateObject("VBScript.RegExp")
     .Global = True
     .Pattern = "(([0-2]?\d{1})|([3][0,1]{1}))\.[0,1]?\d{1}\.(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))"
   If .test(cell) Then
       iDate = .Execute(cell)(0)
   Else
     iDate = ""
   End If
 End With
End Function
Страницы: 1
Наверх