【发布时间】:2018-06-28 03:46:41
【问题描述】:
我正在尝试在 Excel 列中创建一个 VBA -Alert 弹出窗口。
在基于某些计算的 Excel 表中,将计算一些 Growth%(H 列),如果 Growth% > 20%,将生成一个警报弹出窗口,询问原因代码,需要将其放入 I 列。
该代码对于特定单元格(比如H7)运行良好,但是当我将它扩展到一个范围(比如H7:H700)时,它不起作用。
有人可以帮我解决这个问题。
代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("H7:H700") > 0.2 Then
MsgBox "GR% >20%, Put the reason code"
End If
End Sub
% 增长原因代码 34% 20% 18%
现在 ASM/RSM 可以更新他们的预测并自动在 H 列中计算增长 % ...相同的值将被复制到 I 列(作为特殊粘贴),如果增长 % > 20% ,那么会弹出警报...
我正在使用的代码(在 JC Guidicelli 的帮助下):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xCell As Range, Rg As Range
On Error Resume Next
Sheets("Sheet1").Range("H7:H700").Copy
Sheets("Sheet1").Range("I7:I700").PasteSpecial xlPasteValues
Set Rg = Application.Intersect(Target, Range("I7:I700"))
If Not Rg Is Nothing Then
For Each xCell In Rg
If xCell.Value > 0.2 Then
xCell.Select
MsgBox "GR% >20%, Put the reason code"
Exit Sub
End If
Next
End If
结束子
问题在于 Growth% 20%,它抛出了弹出窗口但卡住了.. 有人可以帮我解决这个问题吗..
【问题讨论】:
-
因此,您有 2 列和多行,对于每一行,您需要检查值是否 > 0.2,并且您需要提醒用户每行 > 0.2。我对你的理解正确吗? ...(如果您在问题中包含电子表格数据的样本,人们会更容易理解您的要求并测试可能的解决方案。)
-
Worksheet_Change 不会在计算公式的值发生变化时触发。
-
您需要对 worksheet_change 进行更多研究。 1. 禁用事件 2. 错误控制 3. 当目标多于一个单元格时处理目标。 4. 触发 Worksheet_Change 的原因。
-
@SeanW333....是的...这正是我想做的...