我在一个名为“auto assegnate”的特定表中有一个宏
我想要做的是执行一个名为macroArvalItaly的特定宏。当用户在工作表“auto assegnate”中修改范围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
您只需要添加一个检查值的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