Добрый день.
Есть макрос в модуле лиса "Лист1" (по-моему здесь на форуме нарыл) который заливает цветом все изменённые ячейки-всё работает отлично.
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim vValue
On Error Resume Next
If Target <> vValue Then Target.Interior.Color = vbGreen
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub |
Переделал макрос (в модуле лиса "Лист2") который заливает цветом ячейку в которую ввели ноль-тоже всё работает.
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim vValue
On Error Resume Next
If Target = 0 Then Target.Interior.Color = vbGreen
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub |
А вот если переделать макрос чтобы менял введённый ноль на пусто (в модуле лиса "Лист3") -эксель вылетает, аварийно закрывается.
Код |
---|
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim vValue
On Error Resume Next
If Target = 0 Then Target.Value = ""
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub |
У меня задача: ячейка, в контролируемом диапазоне, должна оставаться пустой (очищаться) если в неё пытаются ввести ноль либо любое не числовое значение путём прямого ввода или при вставке скопированного диапазона (пока пытался решить для ноля).
Вообще я пытался решить этот вопрос с помощью проверки данных, но она слетает если вставлять скопированный диапазон. Запрещать вставку скопированного диапазона нельзя.
Гуглил не один день по данному вопросу, но-увы, чего-то мне не хватило.
Мой уровень-найти подходящее, попытаться понять как работает, переделать под себя.
Прошу подсказать в какую сторону рыть