Я получил "новый" лист, который будет создаваться несколько раз в день, и он будет удален после этого подпункта.

Я хочу скопировать данные с "нового" листа и вставить их в существующий лист "записей"

  1. вставить данные в соответствующую строку (разные фрукты)
  2. добавить новую строку фруктов, если фрукты не существуют на листе "записей"
  3. сортировать по (az), весь используемый диапазон в листе "records" по первому столбцу названия фрукта
  4. заполнить ноль для найденной пустой ячейки в используемом диапазоне
  5. добавьте итоговую строку в последнюю использованную строку диапазона + 1 (поэтому она будет отличаться при каждом запуске этого листа для нового порядка остановки)

например

Лист: записи, новые, как я этого хочу
В этом случае вы можете принять к сведению банан, чернику и драконий фрукт

Теперь я получаю сообщение об ошибке «Блокировать, если без конца, если».
Обновления: я пропустил End If для поиска blankCol. Теперь в коде нет ошибки, но я не могу получить желаемые результаты.
Это мой текущий рекорд
Я понятия не имею, что пошло не так в коде, как банан, черника должна быть добавлена как новые фрукты в "Записи", но теперь я получаю лишнюю клубнику в списке, думаю, что это должно быть smtg о состоянии else, но я не не знаю, как это исправить.

На данный момент я только дохожу до 2-й части своих требований, так как я еще не слишком знаком с используемым диапазоном, у меня все еще есть небольшая проблема в его кодировании.

Sub fruit()

'find first blank column
blankCol = ThisWorkbook.Worksheets("Records").Cells(1, Columns.Count).End(xlToLeft).Column
If blankCol > 1 Then
blankCol = blankCol + 1
End If

'paste the list into existing "Records" sheet
Set rsht = ThisWorkbook.Worksheets("Records")
Set r = rsht.Range("A1") 'record sheet

'set up header for new entry in "Records"
r.Offset(0, blankCol - 1).Value = "new" 'new sheet name from different stalls
r.Offset(1, blankCol - 1).Value = "Amount"

'new sheet with new data
Set temp = ThisWorkbook.Worksheets("new")
Set n = temp.Range("A1") 'temp : new

Dim lastrow As Long
lastrow = temp.Cells(Rows.Count, "A").End(xlUp).Row 'last row in new temp sheet

Dim nextrow As Long
nextrow = rsht.Cells(Rows.Count, "A").End(xlUp).Row + 1 'find next empty row in "Records"

    j = 2 '"Records" sheet
    For i = 1 To lastrow 'refer new

        If n.Offset(i, 0).Value = r.Offset(j, 0).Value Then 'if name matched then

            r.Offset(j, blankCol - 1).Value = n.Offset(i, 1).Value 'copy respective value

        Else

            'paste new name into next available row
            r.Offset(nextrow, 0).Value = n.Offset(i, 0).Value 'fruits
            r.Offset(nextrow, blankCol - 1).Value = n.Offset(i, 1).Value 'amount

        End If

    j = j + 1        
    Next i

End Sub

'delete that new sheet
'ThisWorkbook.Worksheets("new").Delete

0