Это код, который я пытаюсь запустить:
Sub test()
Dim rng As Range
Dim iCounter As Long
For Each rng In Worksheets(1).Range("D2", Range("D" & Rows.Count).End(xlUp))
If rng.Value <> "" Then
Worksheets(2).Range("D1").Offset(iCounter, 0) = rng.Value
iCounter = iCounter + 1
End If
Next rng
End Sub
По какой-то причине, если мой активный лист - лист 2, я получаю сообщение об ошибке: Ошибка времени выполнения «1004»: Приложение Определенная или определяемая объектом ошибка, при этом выделена строка For Each rng In Worksheets(1).Range("D2", Range("D" & Rows.Count).End(xlUp))
. Если я добавлю Worksheets(1).Select
перед For-Each l oop, я не получу эту ошибку, и код будет работать отлично. Я не понимаю, почему я должен явно выбирать рабочий лист, чтобы l oop проходил через диапазон ячеек, учитывая, что я уже указал, на каком листе находится диапазон ячеек, через которые будет проходить цикл. Кроме того, я поискал ошибку и заметил, что у некоторых возникает аналогичная проблема, если их код находится не в разделе модуля, но мой код действительно находится в разделе модуля. Кто-нибудь знает, почему возникает эта ошибка? Спасибо и ценим любой совет!