什么导致Excel 2007在64位环境中跳过错误?

我已经在运行没有错误的32位XP机器上在Excel 2007中创build了一个vba程序。 但是,当我尝试在64位Server 2008 R2远程桌面服务计算机上运行同一电子表格时,我收到一个不可恢复的错误。 这是造成麻烦的代码:

Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ErrHandle Dim MachPhone As String Dim ConPhone As String Select Case Target.Row Case 12 MachPhone = PhoneFormat(Range("B12")) Range("B12").Value = MachPhone Case 13 ConPhone = PhoneFormat(Range("B13")) Range("B13").Value = ConPhone End Select ErrHandle: Exit Sub Resume End Sub 

PhoneFormat函数检查电话号码的格式,并返回一个格式化的电话号码或原始string,如果无法弄清楚电话号码是什么。

禁用事件:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim val As String Dim Phone As String Dim rw As Long On Error GoTo ErrHandle rw = Target.Row If rw = 12 Or rw = 13 Then With Target.Parent.Cells(rw, 2) val = Trim(.Value) Phone = Phoneformat(val) If val <> Phone Then Application.EnableEvents = False .Value = Phone Application.EnableEvents = True End If End With End If Exit Sub ErrHandle: Application.EnableEvents = True End Sub