Ответ 1
Когда вы удаляете строки, всегда лучше идти снизу вверх. Ваша конкретная проблема заключается в том, что вам нужно установить ключевое слово Set, чтобы установить C в объект диапазона, а не "Let" C в значение Value. Диапазон имеет свойство по умолчанию, значение, и когда вы опускаете свойство, которое использовало свойство. По этой причине вам нужно использовать Set при назначении переменных объекта. Здесь приведен пример циклического возврата назад для удаления строк и назначения объектной переменной.
Sub DeleteRows()
Dim i As Long
Dim rRng As Range
Dim rCell As Range
Set rRng = Sheet1.Range("A1:A9")
For i = rRng.Rows.Count To 1 Step -1
Set rCell = rRng.Cells(i, 1)
If rCell.Value Mod 2 = 1 Then
rCell.EntireRow.Delete
End If
Next i
End Sub