Ошибка выполнения VBA 1004 при попытке скопировать ячейки вставки на отдельном листе
В настоящее время я получаю следующую ошибку в коде VBA Excel 2007: Ошибка времени выполнения «1004»: сбой метода «Range» объекта «_Worksheet». Пройдя немало вопросов с этой ошибкой в заголовке, я не нашел похожую ситуацию или решение моей проблемы. То есть без объявления моих переменных как public, что я не хочу делать, поскольку я использую одни и те же переменные несколько раз в разных подпрограммах.
Ошибка возникает в строке:
AccDnn.Range(Cells(2, 71), Cells(RangéeFinAcc - 1, 87)).Copy
Мой код:
Private Sub SaveRedButton_Click()
Dim SaveRedMssg As String, SaveRedTitre As String, SaveRedButtons As Integer, SaveRedAns As Integer
Dim RangéeFinRed As Long, DrpRed As Worksheet
Dim RangéeFinAcc As Long, AccDnn As Worksheet
Application.ScreenUpdating = False
Set DrpRed = ThisWorkbook.Worksheets("Drapeaux Rouges")
Set AccDnn = ThisWorkbook.Worksheets("Acc. données")
RangéeFinRed = DrpRed.Cells(Rows.Count, 1).End(xlUp).Row
RangéeFinAcc = AccDnn.Cells(Rows.Count, 75).End(xlUp).Row
DrpRed.Cells(8, 2) = RangéeFinRed
DrpRed.Cells(9, 2) = RangéeFinAcc
SaveRedTitre = "Enregistrement des données"
SaveRedMssg = "Voulez-vous enregistrer les données du formulaire" & vbNewLine & "«Drapeaux Rouges - Bobineuse»?"
SaveRedButtons = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal
SaveRedAns = MsgBox(SaveRedMssg, SaveRedButtons, SaveRedTitre)
If SaveRedAns = 6 Then
AccDnn.Range(Cells(2, 71), Cells(RangéeFinAcc - 1, 87)).Copy
AccDnn.Cells(RangéeFinRed - 18, 71).PasteSpecial (xlPasteValues)
DrpRed.Range(Cells(19, 1), Cells(RangéeFinRed, 16)).Copy
AccDnn.Cells(2, 75).PasteSpecial (xlPasteValues)
Else: SaveRedAns = 7
Application.ScreenUpdating = True
Exit Sub
End If
Application.ScreenUpdating = True
End Sub
Цель этого кода - перенести данные с входной страницы на одном листе на лист хранения данных, все в одной книге. Данные компилируются на лист данных сверху вниз. Таким образом, код должен прочитать, сколько строк данных должно быть добавлено в лист хранения данных, а затем переместить данные в лист хранения данных, чтобы освободить место для входных данных.