Я составляю электронную таблицу Excel для управления проектами (моя компания не будет разыскивать лицензии для всех, чтобы у каждого был доступ к чему-либо вроде MS Project или тому подобное, и я хотел бы, чтобы каждый мог использовать все), и хотел бы, чтобы Пользователь может добавлять или удалять строки, где бы они ни указывались (я использую пользовательскую форму, чтобы упростить использование). У меня проблемы с копированием, вырезанием и вставкой строк, чтобы создать новую пустую строку.
Я хочу, чтобы пользователь указал номер строки, в которой он хочет разместить новую строку (со всеми связанными формулами и форматированием). В настоящее время я использую ячейку "C6" для ввода номера строки. Я использую модифицированный вариант кода, который успешно использовал ранее, что позволило мне скопировать и вставить новую пустую строку в нижней части таблицы. Я хотел бы, чтобы мой измененный код копировал все строки в диапазоне между строкой, указанной в ячейке "C6", и последней полной строкой, затем смещался на одну строку и вставлял, например, если значение первой строки равно 14, а последняя строка равна 50, скопируйте диапазон (14:50), сместите в строку 15 и вставьте.
Как только я получу этот бит правильно, я сделаю остальную часть кода, чтобы скопировать / вставить и очистить строку 14, чтобы дать мне новую пустую строку в формате. Я надеюсь, что код для удаления строки будет чем-то вроде этого в обратном порядке, но я вернусь к этому позже.
В настоящее время я постоянно получаю сообщение об ошибке, которое просто не понимаю - я перепробовал все, что знаю, чтобы решить эту проблему, и выполнил многочисленные поиски в Google, но ничего не работает!
Ошибка продолжает выделять «FirstRow» как проблему, но у меня есть номер в ячейке - я в растерянности:
Dim rActive As Range
Dim FirstRow As Integer
Dim LastRow As Integer
Set rActive = ActiveCell
Application.ScreenUpdating = False
FirstRow = Range(Range("C6").Value)
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
With Range(FirstRow & ":" & LastRow)
.Copy
With Range(FirstRow).Offset(1, 0)
.PasteSpecial xlPasteAll
On Error Resume Next
End With
End With
rActive.Select
Application.CutCopyMode = False
Application.ScreenUpdating = True
Я вижу, что выбран и скопирован правильный диапазон, но есть проблема с последующим смещением.