VBA для ввода галочек на рабочем листе с использованием шрифта Windings - PullRequest
1 голос
/ 25 июня 2019

Я сделал код для вставки галочек на Рабочий лист, когда пользователь нажимает правую кнопку на Рабочем листе в определенных диапазонах.

enter image description here

Это работает, когдафайл на моем компьютере.Затем я открываю его из нашей файловой системы и пытаюсь щелкнуть правой кнопкой мыши. Я получаю сообщение об ошибке:

enter image description here

Указывает на первый .Font.Name = "Wingdings"

Excel файл открывается на моем компьютере, я не на виртуальной машине или что-то.В чем здесь проблема?

Вот мой код:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("C5:F11, C13:F25, C27:F33, C35:F47, C49:F77, C79:F84, C86:F112, C115:F124, C126:F131, C133:F142, C144:F149")) Is Nothing Then
        Application.EnableEvents = False
        If ActiveCell.Value = Chr(168) Then
            ActiveCell.ClearContents
            With ActiveCell
            .Font.Name = "Wingdings"
            .Value = Chr(254)
            .Font.Size = 16
            End With
        Else
            With ActiveCell
            .Font.Name = "Wingdings"
            .Value = Chr(168)
            .Font.Size = 16
            End With
        End If
        Cancel = True
    End If
    Application.EnableEvents = True
End Sub

1 Ответ

1 голос
/ 25 июня 2019

Я попытался сделать это в своей системе и не смог воспроизвести ошибку.

Однако я сначала отформатировал код и изменил ActiveCell на Target.

Вот что я попробовал, чтобы все работало нормально:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("C5:F11, C13:F25, C27:F33, C35:F47, C49:F77, C79:F84, C86:F112, C115:F124, C126:F131, C133:F142, C144:F149")) Is Nothing Then
        Application.EnableEvents = False

        With Target
            If .Value = Chr(168) Then
                .ClearContents
                .Font.Name = "Wingdings"
                .Value = Chr(254)
                .Font.Size = 16
            Else
                .Font.Name = "Wingdings"
                .Value = Chr(168)
                .Font.Size = 16
            End If
        End With

        Cancel = True
        Application.EnableEvents = True
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...