Здравствуйте. Ниже описан макрос который ищет по всему листу только одну дату и выдает msgbox "Нашел" или "Не нашел" У мена проблема немного другого характера. Нужно найти только на Листу1 диапазона J даты которые находятся между датами ячейки с О по Р и вывести msgbox
Код
Sub Datesearch()
d = Date
Set c = Cells.Find(d, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not c Is Nothing Then
MsgBox "Нашел"
Else
MsgBox "Не нашел"
End If
End Sub
Даты которые содержатся 24.02.21 22:00 24.02.21 19:00 24.02.21 18:30 24.02.21 17:00 24.02.21 16:00 24.02.21 14:30 24.02.21 13:30 24.02.21 11:00 25.02.21 6:30 Именно их мне нужно найти. Если лис не содержит их тогда вход идет следующий макрос, а если содержит тогда бездействие
Option Explicit
Sub t()
Dim rng As Range, ar As Range
Dim x, arr, arrOut(), i&
Dim dFrom#, dTo#
Set rng = Intersect(Range("J:J"), ActiveSheet.UsedRange).SpecialCells(xlCellTypeConstants, xlNumbers)
If rng Is Nothing Then Exit Sub
dFrom = [o1].Value2
dTo = [p1].Value2
ReDim arrOut(rng.Count - 1): i = -1
For Each ar In rng.Areas
arr = ar.Value2
If Not IsArray(arr) Then arr = Array(arr)
For Each x In arr
x = CDbl(x)
If x > dFrom And x < dTo Then i = i + 1: arrOut(i) = Format(x, "DD/MM/YYYY hh:mm:ss")
Next x
Next ar
If i = -1 Then Exit Sub
If i <> UBound(arrOut) Then ReDim Preserve arrOut(i)
MsgBox Join(arrOut, vbLf)
End Sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄