Почему мое событие Worksheet_Change не работает для копирования, вставки уникальных значений? - PullRequest
0 голосов
/ 23 сентября 2019

Я написал код, в котором список чисел в столбце нужно вставить в другой столбец без дубликатов.Это работает в обычном sub (), но когда я пытаюсь сделать это в Worksheet_Change, он не выполняется.Ничего не меняется на листе.Мне нужно, чтобы код выполнялся автоматически, если я изменяю значения в списке.

Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveSheet.Range("B2:B14").AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=Range("C3"), _
    Unique:=True
End Sub

Запрашивает имя макроса, т.е. указание на то, что код не скомпилирован.

1 Ответ

2 голосов
/ 23 сентября 2019

Так что это одна из немногих вещей, большинство из которых были описаны в комментариях.

  1. Включить события должны быть включены.
Sub RunEvents()
    Application.EnableEvents = True
end sub

Вам нужен саб Worksheet_Change в соответствующем модуле листа

Синяя стрелка указывает, где она должна быть (или как там называется ваш лист)

Красная стрелка - точка 1.

Поместите Application.EnableEvents = False вверху события изменения и Application.EnableEvents = True внизу.

enter image description here

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

enter image description here

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