Скажем, у вас есть это в вашем Sheet1
кодовом модуле:
Option Explicit
Public Sub SayHello()
Debug.Print "Hello"
End Sub
Если вы попробуете это в обычном модуле:
Dim sht As Worksheet
Set sht = Sheet1
sht.SayHello
, вы получите ошибку компиляции "Методили элемент данных не найден ".
Ваш метод существует , но вы объявляете sht как тип Worksheet
, а у типа" из коробки "типа" Рабочий лист "нет SayHello
метод, так что вы получите эту ошибку.
Если вместо этого вы используете
Dim sht As Sheet1
или
Dim sht As Object
, вы не увидите ошибку, так как Sheet1
type имеет ли такой метод, и вызов ссылки с поздней привязкой As Object
разрешается во время выполнения.