Excel VBA: как скопировать строку из одного листа в другой на основе диапазона данных с дополнительными критериями для сужения результатов? - PullRequest
0 голосов
/ 27 июня 2018

У меня есть приведенный ниже код, который копирует строки с одного рабочего листа на другой на основе диапазона дат в столбце B. Однако я пытаюсь добавить второе условие, которое исключает результаты на основе другого столбца (C), содержащего текст «Действие». Кто-нибудь может помочь в этом?

Private Sub CommandButton3_Click()
    Dim startdate As Date, enddate As Date
    Dim rng As Range, destRow As Long
    Dim shtSrc As Worksheet, shtDest As Worksheet
    Dim c As Range

    Set shtSrc = Sheets("Tier2")
    Set shtDest = Sheets("Parameters")

    destRow = 74 

    startdate = DateSerial(Year(Now), Month(Now), 1)
    enddate = DateSerial(Year(Now), Month(Now) + 3, 0)


    Set rng = Application.Intersect(shtSrc.Range("B:B"), shtSrc.UsedRange)


    For Each c In rng.Cells
        If c.Value >= startdate And c.Value <= enddate Then

            c.Offset(0, 1).Resize(1, 10).Copy _
                          shtDest.Cells(destRow, 1)

            destRow = destRow + 1

        End If
    Next

End Sub

1 Ответ

0 голосов
/ 27 июня 2018

Использовать смещение для сравнения данных в столбце С.
Добавьте следующее условие в свой оператор If, добавив And

For Each c In rng.Cells
  If c.Value >= startdate And c.Value <= enddate And c.Offset(0, 1) <> "Action" Then
     '....code.... 
  End If
Next c 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...