VBA, Копировать строки на разные листы, если значение ячейки IF совпадает с другим листом - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть 2 рабочих листа.sheet1 - месячное значение в столбце A. Лист 2 - дневное значение в столбце A. Я бы хотел, чтобы Excel посмотрел на то же значение на рабочем листе 2 (Daily), а затем, как только он найдет это точное значение, скопирует строки из сопоставленных строк 1(ежемесячно) и вставьте его в лист 2 (ежедневно).Любые идеи, как написать код VBA, который будет автоматизировать этот процесс копирования и вставки значений?(см. снимок экрана ) [1]: https://i.stack.imgur.com/G5LqW.png [с правой стороны, данные за месяц (последний день каждого месяца), мне нужно сопоставить столбец A обоих листов и вывестиданные на другой лист в точный день (последний день этого месяца)] [1]

1 Ответ

0 голосов
/ 04 декабря 2018

Не проверено

Sub Copy18()
Dim wb As Workbook
Dim wsD2 As worksheet, wsM2 As Worksheets
Dim LastRow As long, LastCol As Long, i as long
Dim Cell As Range, Rng As Range, SearchR As Range, CopyRng As Range, PasteRng As Range

Set wb = ThisWorkbook
Set wsD2 = wb.Sheets("Daily-2")
Set wsM2 = wb.Sheets("Monhly-2")

LastCol = wsM2.Cells(1, Columns.Count).End(xlToLeft).Column
LastRow = wsM2.Cells(Rows.Count, 1).End(xlUp).Row

Set Rng = wsD2.Range(wsD2.Cells(1,1), wsD2.Cells(LastRow, LastCol))

For Each Cell in Rng
    Set SearchR = wsM2.Range("A:A").Find(Cell.Value, LookAt:=xlWhole)
    If Not SearchR Is Nothing Then
        i = LastCol = wsM2.Cells(SearchR.Row, Columns.Count).End(xlToLeft).Column
        Set CopyRng = wsM2.Range(wsM2.Cells(SearchR.Row, 1), wsM2.Cells(SearchR.Row, i))
        Set PasteRng = wsD2.Range(wsD2.Cells(LastRow + 1, 1), wsD2.Cells(LastRow + 1, i))
        PasteRng.Value = CopyRng.Value
        LastRow = LastRow + 1
    End If
Next Cell

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...