Это может быть начало.Я решил отметить все значения, которые были правильно отформатированы, так как я думаю, что это проще.У меня возникли некоторые проблемы с кодом, потому что я не объявляю эту часть как переменную
Cells.Find(What:="", After:=CellRange, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=True).Activate
, и поэтому этот макрос переходит в бесконечный цикл ... но он помечает все ячейки форматированием yyyy/dd/mm hh:mm:ss
.Вы можете отменить макрос, нажав «Esc».
Итак, с чем поиграться:
Sub Macro1()
Dim CellRange As Range
Dim lcol As String
Dim lrow As String
Dim ActCellRow As Integer
Dim ActCellCol As Integer
Dim CellVal As String
For i = 1 To 8
CellVal = Cells(1, i)
If LCase$(CellVal) Like LCase$("*date*") Then
lrow = Cells(Rows.Count, 3).End(xlUp).Row
For j = 2 To 9
Set CellRange = Range(Cells(j - 1, i), Cells(j - 1, i))
Application.FindFormat.NumberFormat = "yyyy/mm/dd hh:mm:ss"
Range(Cells(2, i), Cells(lrow, i)).Select
Cells.Find(What:="", After:=CellRange, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=True).Activate
ActCellRow = ActiveCell.Row
ActCellCol = ActiveCell.Column
Cells(ActCellRow, ActCellCol).Interior.Color = vbBlue
Next j
End If
Next i
End Sub
Откройте редактор VBA с помощью ALT + F11.Затем вставьте его в модуль.