Я довольно новичок в программировании, и это мой первый проект. Я избавился от всех других проблем, но теперь я застрял. Мой код должен сравнивать записи на одном листе с записями на другом листе и, когда выполняются два условия, копировать данные из этой строки в соответствующую строку на другом листе. Если данные копируются точно, это год, который также указан в строке.
Я пробовал различные способы копирования данных с помощью VBA и всегда получаю одни и те же два сообщения об ошибках:
Runtime error 424: Object required
если я использую
Worksheets("Template").Cells(i, 4).Value.Copy
или Runtime error 1004: application-defined or object-defined
ошибка при использовании
Worksheets("Template").Range(i, 4).Copy
Вы можете увидеть мой код ниже, я пропустил некоторые вещи, потому что они не имеют отношения к проблеме. Кроме того, я публикую только первые два условия, если остальные 5 точно такие же.
Sub Datentransfer()
Dim newEmptyRow As Long
newEmptyRow = Worksheets("Data").Cells(Rows.Count,2).End(xlUp).Offset(1,
0).Row
Dim entries As Integer
entries = Worksheets("Template").Cells(Rows.Count, 1).End(xlUp).Row
'Variables for runing through the two sheets
Dim i As Integer, j As Integer
For i = 3 To entries 'Start in Zeile 3
For j = 24 To newEmptyRow 'Start in Zeile 24
'Copy if both conditions are met
If Worksheets("Template").Cells(i, 3).Value = Worksheets("Data").Cells(j, 2).Value _
And Worksheets("Template").Cells(i, 1).Value = Worksheets("Data").Cells(j, 5).Value Then
'Paste based on year
If Worksheets("Template").Cells(i, 2).Value = 2011 Then
Worksheets("Template").Range(i, 4).Copy
Worksheets("Data").Range(j, 8).PasteSpecial xlPasteValues
ElseIf Worksheets("Template").Cells(i, 2).Value = 2012 Then
Worksheets("Template").Range(i, 4).Copy _
Worksheets("Data").Range(j, 9)
End If
End If
Next j
Next i
End Sub
Сообщение об ошибке появляется во второй строке ниже комментария «Вставить на основе года».
Заранее большое спасибо!