On Error Goto 0すると、Errオブジェクトが初期化されるので、Err.Numberを取得したい場合はOn Error Goto 0をする前に取得しておく必要があります。
サンプルコード
Sub test()
Dim pointer() As String
Dim tmp As Integer
Dim errNo1 As Integer
Dim errNo2 As Integer
On Error Resume Next
temp = UBound(pointer, 3) 'エラー発生
errNo1 = Err.Number
On Error GoTo 0
errNo2 = Err.Number
MsgBox ("On Error Goto 0する前のErr.Number: " & errNo1 & vbCrLf & _
"On Error Goto 0した後のErr.Number: " & errNo2)
End Sub
サンプルコード実行結果