Я havent закодирован за многие годы, так что стараюсь изо всех сил связывать свою цель.Копирование информации о строках с одного листа на другой, основанный на вводе ячеек
У меня есть листок, содержащий список многих проектов (перечисленных в Мастере со своей собственной ячейкой), которые также имеют свои собственные пронумерованные листы. Этот Мастер имеет информацию, относящуюся ко всем другим проектам в строках, которые при выборе под соответствующей ячейкой копируют информацию о строках в следующую доступную строку в соответствующей странице проекта.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim nextrow As Long, lastrow As Long, i As Long
nextrow = Sheet1.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet5.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet4.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet6.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet7.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet8.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet9.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet10.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet11.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet12.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet13.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet14.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet15.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet16.Cells(Rows.Count, "A").End(xlUp).Row + 1
nextrow = Sheet17.Cells(Rows.Count, "A").End(xlUp).Row + 1
lastrow = Sheet3.Cells(Rows.Count, "A").End(xlUp).Row + 1
If Target.Cells.Count > 1 Then Exit Sub
Application.ScreenUpdating = False
If Not Intersect(Target, Range("C5:C" & lastrow)) Is Nothing Then
If Target <> vbNullString Then
i = Target.Row
Range("A" & i & ":B" & i).Copy Destination:=Sheet1.Range("A" & nextrow)
End If
End If
Это предыдущая 6 строк кода повторяются для каждого номера листа, пока не доберется до последнего листа (лист 17 и ячейки Q), а затем Theres:
Application.ScreenUpdating = True
end Sub
Это работает, однако, когда он копирует информацию, она заменяет существующую информацию, а не помещает ее в следующую доступную строку. В этом случае ЗА ИСКЛЮЧЕНИЕМ для любого последнего листа проекта. Последний лист работает по назначению.
Это просто, что вы ** перезаписать ** 'nextrow 'при каждом вычислении, которое вы сделали с самого начала, так что вы будете иметь это только в фактах' nextrow = Sheet17.Cells (Rows.Count, «A»). End (xlUp) .Row + 1'. – R3uK
Почему вы так часто устанавливаете 'nextrow'? Фактически единственное значение 'nextrow' будет когда-либо иметь:' Sheet17.Cells (Rows.Count, «A»). End (xlUp) .Row + 1', так как это последний вызов. Поэтому, когда вы вставляете в следующий доступный диапазон в Листе 1, он будет основан на этом листе17. (Вы могли буквально удалить первые 14 или около того 'nextrow = ...' и тот же результат произошел бы). – BruceWayne