Я уже давно борюсь с этой проблемой и постараюсь объяснить ее как можно лучше.
У меня есть активная таблица, число строк которой постоянно увеличивается. Каждая строка имеет некоторые свойства и скрытые ячейки, которые должны быть там. Итак, моя проблема заключается в следующем:
Когда я прихожу к номеру строки ex.100 и таблица заполнена, я хотел бы ввести новую строку под этой строкой с теми же свойствами, что и у предыдущей.
Мне удалось найти несколько кодов в интернете и объединить их в один работающий код, но с ним много проблем. Вот код:
Private Sub Workbook_Open()
Sub BlankLine()
Dim Col As Variant
Dim BlankRows As Long
Dim LastRow As Long
Dim R As Long
Dim StartRow As Long
Col = "C"
StartRow = 123
BlankRows = 1
LastRow = Cells(Rows.Count, Col).End(xlUp).Row
Application.ScreenUpdating = False
With ActiveSheet
For R = LastRow To StartRow + 1 Step -1
If IsEmpty(.Cells(R, Col)) = False Then
.Cells(R + 1, Col).EntireRow.Copy
.Cells(R + 1, Col).EntireRow.Insert Shift:=xlDown
Range("A1").ClearOutline
End If
Next R
End With
Application.ScreenUpdating = True
End Sub
Итак, вот что происходит: когда вы открываете Excel, он сразу же ищет строки после строки номер 123 с чем-либо в ячейке C и копирует следующую пустую строку после текущей. Проблема здесь в том, что каждый раз, когда я открываю Excel, он делает это и делает копии копий копий.
Как это должно происходить: когда вы открываете Excel, код должен быть активным, а когда вы заполняете строку № 124, копируете строку 125 и вставляете ее в строку 124 и заканчиваете строкой 124. Теперь, чтобы переместить код в строку номер 125, и когда эта строка содержит данные в ячейке C, скопируйте строку 126 и переместите ее ниже 125, затем остановите и так далее ...
Идея состоит в том, чтобы таблица активно увеличивалась в строках и копировала данные, чтобы вам не приходилось делать это вручную, когда она заполнена.
Извините за длинное объяснение, я надеюсь, что есть решение.
Заранее спасибо.