VbA Worksheet_Change не распознает клавишу DELETE в ячейке - PullRequest
0 голосов
/ 04 мая 2020

простая вещь:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, ThisWorkbook.ActiveSheet.Range("C1")) Then
        debug.print "value changed"
        If IsEmpty(Target.Value2) Then
            debug.print "ie empty"
        else
            debug.print "is not empty"
        end if
    end if
end sub

Я добавил:

debug.print "value changed"

, чтобы увидеть, вызывает ли клавиша "delete" функцию Worksheet_Change (), и это НЕ, это срабатывает только при изменении значения (или добавить, если было пусто)! Но когда что-то есть, и я выбираю ячейку и нажимаю клавишу DELETE на клавиатуре, ничего не происходит: (

что не так с кодом?

1 Ответ

1 голос
/ 04 мая 2020

Заменить:

If Intersect(Target, ThisWorkbook.ActiveSheet.Range("C1")) Then

на:

If Not Intersect(Target, Range("C1")) Is Nothing Then

РЕДАКТИРОВАТЬ # 1:

Одной из возможных проблем является то, что If ожидает Boolean и Intersect() возвращает Range. Excel пытается интерпретировать Range и иногда преуспевает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...