Я написал короткий фрагмент кода, который при двойном щелчке знака «+» в электронной таблице должен скопировать всю строку, где находится знак «+», и вставить новую строку непосредственно под ней.точно так же.
Если я попытаюсь добавить строку до того, как добавлю какой-либо текст на лист, проблем не будет.Но если я добавляю текст, даже в строку, которую пытаюсь скопировать, а затем пытаюсь добавить строку, я получаю
«Метод« Вставка »объекта« Диапазон »не удался»
ошибка, даже если я удалил текст перед копированием.Кажется, что сама вставка действительно происходит, но вызывает ошибку.Если я сначала использую строку «Удалить», хотя даже для удаления строки с текстом, код работает отлично. Когда я отлаживаю часть Cells(Target.Row + 1, 1).EntireRow.Insert
, кажется, проблема.
Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Unprotect Password:=strPwd
If ActiveCell.Column = 3 And Target.Value = "+" Then
Target.EntireRow.Copy
Cells(Target.Row + 1, 1).EntireRow.Insert
Cells(Target.Row + 1, 1).EntireRow.Select
For Each Cell In Selection
If Cell.Interior.Color = 13434879 Then
Cell.ClearContents
ElseIf Cell.Interior.Color = Black Then
Cell.ClearContents
End If
Next
Cells(Target.Row + 1, 4).Select
Application.CutCopyMode = False
ElseIf ActiveCell.Column = 2 And Target.Value = "-" Then
Target.EntireRow.Select
Target.EntireRow.Delete
Cells(3, 4).Select
End If
ActiveSheet.Protect Password:=strPwd, UserInterfaceOnly:=True
End Sub
Любая помощь будетс благодарностью.Рад предоставить больше информации, если это будет необходимо.