Что вызывает в Excel 2007 пропуск ошибки в 64-битной среде? - PullRequest
2 голосов
/ 07 июля 2011

Я создал программу vba в Excel 2007 на 32-битной машине XP, которая работает без ошибок.Однако, когда я пытаюсь запустить ту же электронную таблицу на 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 проверяет формат номера телефона и возвращает форматированный номер телефона или исходную строку, если не может определить, какой телефонномер.

1 Ответ

3 голосов
/ 08 июля 2011

Отключение событий:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...