Excel VBA: для каждой ячейки в столбце A3: функции If - PullRequest
0 голосов
/ 03 июня 2019

У меня есть ListBox, который я пытаюсь заполнить на основе Для каждой ячейки в столбце A3: A Если CDate (Cell.Value) <2 года. </p>

По сути, просматривая столбец A3 до последней использованной ячейки длядата в году менее 2 лет, чтобы вернуть значение из соседнего столбца B, если true для ListBox.

Спасибо.

 Dim MyDateYear As Date
 Dim Cell As Range

 MyDateYear = Date
 MyDateYear = DateAdd("m", -24, MyDateYear)

 For Each Cell In Worksheets("Sheet1").UsedRange.Columns("A").Cells
 If CDate(Cell.Value) < Format(MyDateYear, "YYYY") Then
 Me.ListBox1.AddItem Cells(Cell.Row, 2).Value
 End If

 Next Cell

1 Ответ

0 голосов
/ 03 июня 2019

Попробуйте вместо этого

Dim MyDateYear As Date
Dim Cell As Range
Dim LRow as Long

MyDateYear = Date
MyDateYear = DateAdd("m", -24, MyDateYear)

With Workbooks(REF).Sheets("Sheet1") 'edit reference
    LRow = .Cells(.Rows.Count, "A").End(xlUp).Row

    For Each Cell In .Range("A3:A" & LRow)
        If CDate(Cell.Value) < Format(MyDateYear, "YYYY") Then
            Me.ListBox1.AddItem .Cells(Cell.Row, 2).Value
        End If
    Next Cell
End With

Подробнее о получении последней ячейки, строки, столбца читайте в этой статье

...