Вызовите метод или определите, работает ли метод / существует? - PullRequest
0 голосов
/ 15 января 2020

Есть ли способ, которым vba может определить, присутствует ли метод / доступен? У меня есть два разных метода, которые по сути будут выполнять одно и то же, но разными способами: один - сервер SQL, а другой - файл Excel. Я хочу иметь возможность сначала вызвать метод SQL, и если по какой-либо причине этот метод SQL недоступен, он затем вызовет метод excel. Но какова будет строка кода в операторе if?

Я знаю, что вы "вызываете" методы, но какова по сути строка кода, которая будет:

If SQLMethod() ... Then 
   Call SQLMethod()
Else
   Call ExcelMethod()
End If  

Какой код будет в "...", чтобы проверить это?

Любая помощь будет признательна!

1 Ответ

0 голосов
/ 20 января 2020

Вы не можете иметь ссылку на подпрограмму, которая не существует; код не скомпилируется, и вы получите сообщение «Ошибка Compl ie: Sub или Function не определены».

Но вы можете сделать это:

Sub Main()
    On Error Resume Next
    Application.Run "Test1"
    If Err <> 0 Then Application.Run "Test2"
End Sub

Sub Test1()
    Debug.Print "Test1()"
End Sub

Sub Test2()
    Debug.Print "Test2()"
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...