gpt4 book ai didi

excel - 工作表更改: If value of cell in certain range >c8 -> MsgBox and if value in other cell (that has function in it) > 300 -> MsgBox

转载 作者:行者123 更新时间:2023-12-03 01:28:01 25 4
gpt4 key购买 nike

我想要一个工作表更改宏,只要将大于 8 的值放入范围 (F14:J26) 中的单元格之一,并且将大于 300 的值放入单元格 C37 中,该宏就会弹出一个消息框。

我的问题是单元格 C37 不是手动填写的,而是有一个公式,因此它是其他两个单元格的计算。我认为 Excel 不会将其识别为一个值,因此每当该单元格中的结果高于 300 时,Excel 不会执行任何操作。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("F14:J26")) Is Nothing Then
If Target.Value > 8 Then
MsgBox "Was that accepted?"

End If
End If

If Not Application.Intersect(Target, Range("C37")) Is Nothing Then
If Target.Value > 300 Then
MsgBox "Was that accepted?"

End If
End If

End Sub

代码的第一部分按其应有的方式工作。但上面解释的第二部分则不然。我还尝试将其拆分为两个单独的代码,但这显示了一个错误。任何对此的帮助将非常感激!

最佳答案

除了 Gerrit's anwser我建议按以下方式扩展它,这样如果有人将数据范围粘贴到 F14:J26 中也不会失败。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim AffectedRng As Range
Set AffectedRng = Application.Intersect(Target, Range("F14:J26"))

Dim FoundInvalidData As Boolean

If Target.Parent.Range("C37").Value > 300 Then
FoundInvalidData = True
ElseIf Not AffectedRng Is Nothing Then
Dim Cel As Range
For Each Cel In AffectedRng.Cells
If Cel.Value > 8 Then
FoundInvalidData = True
Exit For
End If
Next Cel
End If

If FoundInvalidData Then
MsgBox "Was that accepted?"
End If
End Sub

关于excel - 工作表更改: If value of cell in certain range >c8 -> MsgBox and if value in other cell (that has function in it) > 300 -> MsgBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54626403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com