Копирование строк из двух или более листов Excel в другой на основе значения ячейки - PullRequest
0 голосов
/ 10 января 2019

введите описание изображения здесь Я не думаю, что это может соответствовать минам, так или иначе,

Разница заключается в копировании с более чем одного листа на другой в зависимости от значения ячейки, причем не с помощью макроса VBA, а с помощью:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range).

На самом деле я пробовал это, но это не дает хорошего результата:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    For Each Sh In ThisWorkbook.Sheets
        If Not Sh.Name = "Archive" Then
            If Cells(Target.Row, 3) = "delivered" Then Cells(Target.Row, 3).EntireRow.Copy Sheets("Archive").Range("A" & Rows.Count) _
              .End(xlUp).Offset(1, 0)
        End If 
    Next Sh
End Sub

Спасибо за помощь.

1 Ответ

0 голосов
/ 13 января 2019

Я публикую здесь решение моего вопроса, спасибо PEH и спасибо за форум.

Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range) Если не Sh.Name = "Архив" Тогда lastcolumn = Cells (1, Columns.Count) .End (xlToLeft) .Column Если Sh.Cells (Target.Row, 3) = "доставлено", а Sh.Cells (Target.Row, lastcolumn) <> "" Тогда Range (Ячейки (Target.Row, 1), Ячейки (Target.Row, lastcolumn)). Копировать _ Sheets («Архив»). Range («A» & Rows.Count) .End (xlUp) .Offset (1) End If End If End Sub

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