2015-06-10 3 views
-3

Я пытаюсь настроить функцию, которая будет проверять даты с одного листа (листа 1) на 2 столбца: startDate и endDate в Sheet2. И если есть совпадение, я хочу скопировать значения из одной ячейки, которая находится на листе2, в конкретную ячейку (ту же строку, где находится дата чекинга), в sheet1. Я написал код, но позже я понял, что моя логика не очень хорошая. Я также нашел this link on stackoverflow website ...Дата проверки на основе startDate и endDate

my xls file - function is in the module 3 "checkDate"

и здесь является code..I нужно найти функцию somehow..maybe мне нужно вставить два итератора (2 для петель?)

Sub CheckDate() 

Dim d1 As Date 
Dim d2 As Date 
Dim datumPok As Date 
Dim s As String 
Dim i As Long 

Dim LR As Long 

LR = Range("K" & Rows.Count).End(xlUp).Row 

For i = 2 To LR 

    d1 = ActiveWorkbook.Worksheets("Glasnik").Cells(i, 2).Value 

    d2 = ActiveWorkbook.Worksheets("Glasnik").Cells(i, 3).Value 

    With .Range("K" & i) 

     datumPok = ActiveWorkbook.Worksheets("Spisak").Cells(i, 11) 

     If d1 < datumPok < d2 Then 
      MsgBox "opaaa" 

      s = ActiveWorkbook.Worksheets("Glasnik").Cells(i, 4).Value 

      ActiveWorkbook.Worksheets("Spisak").Cells(i, 6).Value = s 

     Else 
      MsgBox "test" 

     End If 
    End With 
Next i 
End Sub 

Я действительно в этом. Спасибо, ребята!

+0

Dim j As Lond? вы вообще запускаете этот код? – 99moorem

+0

Извините за это, но Dim j as Long не имеет значения. Я отредактирую его. Извините еще раз – Stefan89BEG

+0

Я подозреваю хотя бы строку 'If d1 eirikdaude

ответ

0

Я нашел решение!

Простой обыденный поиск с некоторой математической формулой был достаточно.

=LOOKUP(2,1/((G1>=$A$1:$A$24)*(G1<=$B$1:$B$24)),$C$1:$C$24) 

при условии, что дата в графе G1 ..

Спасибо всем! :)

Смежные вопросы