如何在VBA代码中实现error handling

我有从Excel的“C10”单元中获取数据库服务器名称的代码,从单元格中获取值后,它连接到服务器,然后执行存储过程。

我的服务器名称在“C10”单元格中:LE64 \ SQL2012

Option Explicit Sub Button1_Click() Call TS End Sub Sub TS() 'Variable Declaration Dim OutPut As Integer If MsgBox("Do you want to take the Snapshot?", vbQuestion + vbYesNo, "MS Excel") = vbYes Then Dim con As Connection Dim rst As Recordset Dim strConn As String Dim strDatabase As String Dim myRange As Range Dim objWorkbook As Excel.Workbook Dim objWorkSheet As Excel.Worksheet Set objWorkSheet = ThisWorkbook.Sheets("MS Excel") objWorkSheet.Activate Set con = New Connection Let strDatabase = objWorkSheet.Range("C10").Value strConn = "Provider=SQLOLEDB;" strConn = strConn & "Data Source= " & strDatabase & ";" strConn = strConn & "Initial Catalog=Warehouse;" strConn = strConn & "Integrated Security=SSPI;" con.Open strConn Set rst = con.Execute("Exec [dbo].[LoadSP]") MsgBox "Snapshot successfully taken", vbInformation, "MS Excel" con.Close End If End Sub 

但是当我将单元格“C10”的值稍微更改为“LE64 \ SQL201”时,它无法连接到服务器,并在以下引发错误:

在消息框中“SQL Server不存在或访问被拒绝”

如果在从C10单元中提取值之后无法连接到正确的数据库服务器,我想要在突出显示“无效数据库名称”的不同消息框中处理并显示上述错误。

我看了一下网上不同的error handling机制,但无法实现它。

任何人都可以帮我添加一个try catch块到我的代码或任何error handling机制来处理上述问题。

看看这个示例代码

  Sub MySub() On Error GoTo ErrorHandler . . . Exit Sub ErrorHandler: . . . Resume <or Exit Sub> . . . End Sub 

这是处理错误的最简单的方法。

更多的进步选项请参考来源