Wyobraźmy sobie sytuację, w której kryteria i warunki zostały określone w postaci zmiennych tekstowych co obrazuje poniższy przykład:
Dim Warunek As String
Warunek = "1=1"
lub też
Warunek = "1+5=6"
albo
Warunek = "A=A"
Czy istnieje możliwość aby sprawdzić prawdziwość powyższych warunków w kodzie VBA? Otóż i tak i nie. W zakresie warunków oparty o liczby możemy sięgnąć po funkcję Evaluate i zweryfikować prawdziwość powyższych przykładów:
Warunek = "1=1"
Debug.Print Evaluate(Warunek) >> True
Warunek = "1+5=6"
Debug.Print Evaluate(Warunek) >> True
Warunek = "1+5=7"
Debug.Print Evaluate(Warunek) >> False
Problemem jest jednak poniższy zapis dot. zmiennych tekstowych, który zwróci błąd:
Warunek = "A=A"
Debug.Print Evaluate(Warunek) >> Error 2029
Metoda Evaluate zadziała prawidłowo dla poniższego zapisu warunku opartego o parametry tekstowe, a więc wartości ujęte w dodatkowe wewnętrzne cudzysłowy:
Warunek = """A""=""A"""
Debug.Print Evaluate(Warunek) >>True
Warunek = """A""=""a"""
Debug.Print Evaluate(Warunek) >> True
Warunek = """A""=""Z"""
Debug.Print Evaluate(Warunek) >> False
Brak komentarzy:
Prześlij komentarz