excel vba-код не запускается на старом листе, но работает на новом

#excel #vba

#excel #vba

Вопрос:

У меня есть несколько листов Excel, полученных из онлайн-программы, которая преобразует из PDF в Excel, и я пытаюсь обработать имеющиеся у них данные. Однако, когда я пытаюсь запустить этот код:

 Sheets(1).Range("A1").Select
    For j = 1 To 16
        If Selection.Offset(j, 0) = 1 Then
           Selection.Offset(j, 0).Select
        End If
    Next j
  

Excel показывает runtime-error '1004': application-defined or object-defined error .

Однако, если я создаю новый лист, код выполняется без проблем. Почему я не могу запустить свой код на других листах?

Другие инструкции, например Selection.Offset(2, 0) = Sheet(1).Range("A1") , работают нормально.

Ответ №1:

По возможности избегайте использования выбора.

 With Sheets(1)
    For j = 2 To 17
        If .Cells(j, 1) = 1 Then
           .Cells(j, 1).Select
        End If
    Next j
End With