Ошибка при запуске кода формы с другого листа - PullRequest
0 голосов
/ 04 октября 2018

У меня есть форма с множеством подпрограмм.Рабочая тетрадь имеет много листов.Когда я запускаю форму, когда активным листом является CodesSheet, использую любой из For Each rCell в приведенном ниже коде, все работает ОК.Когда я запускаю код с другого листа, код работает нормально при использовании второй строки - .Range("L2:L4125") -, но завершается ошибкой с первой - .Range(Cells(2, 12), Cells(LastRowCodes, 12)).

Сообщение равно Run time error 1004 - Method Range of object _worksheet failed.Но при отладке указатель мыши над LastRowCodes показывает правильное значение (4125).

Кто-нибудь может определить ошибку?

For Each rCell In CodesSheet.Range(Cells(2, 12), Cells(LastRowCodes, 12)) '-->Error here, although LastRowCodes is correct
'For Each rCell In CodesSheet.Range("L2:L4125") '--> If using this instead of the above, no error

    'Do Stuff

Next rCell

1 Ответ

0 голосов
/ 04 октября 2018

Cells без учета Worksheet означает, что предполагается ActiveSheet.

Используйте блок With...End With для полной квалификации Worksheet - отметьте периоды.

With CodesSheet
    For each rCell in .Range(.Cells(2, 12), .Cells(LastRowCodes, 12))
        ....
    Next rCell
End With
...