Перебор листов книги и передача их как параметра. Run-time error '438' - VBA

Узнай цену своей работы

Формулировка задачи:

Привет! Объясните, пожалуйста, почему не работает это код?
f2 (sh) выдает Run-time error '438': Object doesn't support this property or method. Не пойму почему. Входной параметр f2 указан как Worksheet. Элементы в переборе For Each как Worksheet из коллекции Worksheets, или нет. Ничего не понимаю... А дебаггер показывает что переменная sh это Variant, а не Worksheet Если переделать тело цикла на
то дебаггер показывает, что sh1 это Worksheet. Но ошибка остается...

Решение задачи: «Перебор листов книги и передача их как параметра. Run-time error '438'»

textual
Листинг программы
Sub Main()
    Dim c As New Collection, sh As Worksheet
    For Each sh In Worksheets
        c.Add sh
    Next
    For Each sh In c
        SubMain sh
    Next
End Sub
 
Sub SubMain(sh As Worksheet)
    MsgBox sh.Name
End Sub

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы