środa, 4 marca 2015

Dlaczego błędna metoda nie zwraca błędu kompilacji?

Dzisiejszy wpis będzie wyjątkowy gdyż kierować będzie wprost na stronę Stackoverflow.com gdzie ostatnio pojawiło się bardzo interesujące pytanie i o wiele ciekawsza odpowiedź. Autor pytania zaprezentował prosty kod:
01Public Sub VBACompilerIsMad()
02 
03    Dim Ap As Application    
04    Dim Wb As Workbook
05    Dim Ws As Worksheet
06 
07    Debug.Print Ap.XXX ' No compile error
08    Debug.Print Wb.XXX ' No compile error
09    Debug.Print Ws.XXX ' Compile error
10 
11End Sub
zadając pytanie- dlaczego dwie pierwsze pseudo-metody XXX dla obiektów Application i Workbook nie zwracają błędów prekompilacji podczas gdy błąd jest zwracany przez trzecią z metod. Tym razem pozwolę sobie na bezpośrednie przekierowanie do odpowiedzi na stronie StackOverflow.com. Tutaj znaleźć można bardzo interesujące wyjaśnienie: http://stackoverflow.com/a/28237063/2143262