Я переписал код для работы с диапазонами (вместо того, чтобы использовать диапазон для получения строк, а затем циклические номера строк), для измерения переменных и с отключенным экранным обновлением (для скорости), плюс более надежно смотреть вверх, чем вниз при поиске последней записи
Эта версия копирует всю строку с листа Q3 на лист Q3, если сумма владения превышает 1000. Она может быть сокращена до любого количества ячеек, которое вы хотите (я думаю, что вы хотите две ячейки? )
[pdate: далее прибрано код, добавлена переменная ws2
, удалено AmountOwned
и избыточно nCustomers
]
Sub Update()
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim rng1 As Range
Dim rng2 As Range
Application.ScreenUpdating = False
Set ws = Worksheets("Q3 Sheet 1")
Set ws2 = Worksheets("Q3 Sheet 2")
Set rng1 = ws.Range(ws.[a4], ws.Cells(Rows.Count, "A").End(xlUp))
For Each rng2 In rng1
'If amount owed > 1000 then transfer customer ID and amount owing to Q3 Sheet 2
If rng2.Offset(0, 1) - rng2.Offset(0, 2) > 1000 Then rng2.EntireRow.Copy ws2.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
Next
Application.ScreenUpdating = True
End Sub