Макрос выполняется только в том случае, если модификация одной ячейки моего диапазона отличается от 0 или пустой ячейки (событие) - PullRequest
0 голосов
/ 31 августа 2018

У меня есть макрос на одном конкретном листе, который называется «автоматическая сборка»

Что я хочу сделать, это выполнить определенный макрос с именем macroArvalItaly. Когда пользователь изменяет ячейку в диапазоне от E5 до E13 на листе «Автоматическая сборка», это работает хорошо. Однако я хотел бы, чтобы мой макрос macroArvalItaly выполнялся, только если пользователь изменяет ячейку из этого диапазона с изменением, отличным от значения 0, или оставляет ячейку пустой (пустой).

Я имею в виду, если модификация одной моей ячейки этого диапазона (от E5 до E13) равна 0 или пустая ячейка: не выполнять макрос

Если модификация одной моей ячейки этого диапазона (от E5 до E13) отличается от 0 или пустой ячейки: выполнить мой макрос

И в довершение (это необязательно, но было бы здорово), если модификация одной моей ячейки этого диапазона (от E5 до E13) отличается от фигуры или пустой ячейки (фигура может быть десятичной как например 0,333): не выполнять макрос и отправлять пользователю сообщение об ошибке («записи из ячейки E5 в E13 должны быть только цифрами»)

Большое спасибо заранее. Хави

Здесь, пожалуйста, найдите мой код ниже:

Sub Worksheet_Change(ByVal Target As Range)

With Worksheets("Auto assegnate")
If Not Intersect(Target, Range("E5:E13")) Is Nothing Then

Call ThisWorkbook.macroArvalItaly1
End If
End With
End Sub

1 Ответ

0 голосов
/ 31 августа 2018

Вам просто нужно добавить оператор if, который проверяет значение:

Sub Worksheet_Change(ByVal Target As Range)
   With Worksheets("Auto assegnate")
       If Not Intersect(Target, Range("E5:E13")) Is Nothing AND target.Value <> "" AND target.Value <> 0 Then
         Call ThisWorkbook.macroArvalItaly1
       End If
    End With
End Sub

Для вашей второй части, если вы хотите проверить, равна ли она другой ячейке, просто используйте

if ISNUMERIC(target.value) Then
    Call ThisWorkbook.macroArvalItaly1
Else
   msgbox "You cannot use this value"
End if
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...