我正在处理一个文件,在一个工作表中让我们称之为摘要,我有一个公式,计算在其他工作表中手动输入的值,所以我想有一个vba代码通过弹出消息通知我计算在其他工作表中进行数据输入时,摘要表中的结果为< = 0。 我发现下面的代码只能在一个单元格中正常工作但如果我想将它扩展到同一行中的其他单元格会导致错误。假设我想将它扩展到 B9:CZ9 。
Private Sub Worksheet_Calculate()
If Me.Range("B9").Value <= 0 Then _
MsgBox "Leave is finished!"
End Sub
答案 0 :(得分:0)
可能的背景:
Private Sub Worksheet_Calculate()
With Me.Range("B9:CZ9")
If Application.CountIf(.Cells, "<=0") = .Cells.Count Then _
MsgBox "Leave is finished!"
End With
End Sub
答案 1 :(得分:0)
Private Sub Worksheet_Calculate()
Dim RNG As Range
Set RNG = Selection
For Each c In RNG
If c.Value <= 0 Then
MsgBox "Leave is finished!"
End If
Next c
End Sub
答案 2 :(得分:0)
如果我理解正确,也许这段代码可以帮助您(您必须将此代码放在您希望使用此代码的正确工作表的源代码中):
Private Sub Worksheet_Calculate()
Dim leave As Boolean: leave = False
For Each c In Me.Range("B9:CZ9").Cells
If c.Value <= 0 Then: leave = True
Next
If leave Then: MsgBox "Leave is finished!"
End Sub
此代码适用于在单元格中计算某些内容时,例如,当您在其中任何一个中键入=0
时,并且不会为您提供大量的消息框。
如果您希望在更改内容时使用此功能,请使用Private Sub Worksheet_Change(ByVal Target As Range)
请注意,扩展程序xlsx
不能包含VBA代码。因此,在您希望此代码可用于工作表的代码之后,您必须save it as macro-enabled workbook。