Excel | 自动启动macros的单元格值更改| 导致崩溃

首先,我不是一个VBA程序员,但通常是最终用户,他使用我在电子表格中这样的论坛中收集的代码片段,试图了解代码的function。 代码为此我感谢大家!

我的目标是:我有一个基本上是用户input表单的电子表格。 根据他们的input和下拉select,我的意图是引导他们通过隐藏和取消隐藏input字段的行表单,向用户提供相关问题。

在每一行上,我创build了一个IF公式,根据前面提供的input1 – >取消隐藏行0 – >隐藏行,创build1或0。

所以我正在寻找一个运行每个工作表计算,并根据需要隐藏或取消隐藏下一行的macros。

这些公式在范围I3:I70之上,我在I2 =sum(I3:I70)创build了一个汇总字段,所以我认为我可以检查范围I3:I70更改或单元格I2上的更改以触发macros。 [两个解决scheme都不能解决我的问题

我已经尝试了几个在论坛上描述的代码示例,我已经testing了在范围或单元格中检查更改的macros。 只要我用MsgBox调用一个testingmacros,它就可以正常工作。 当我手动调用它时,隐藏或不隐藏的macros也可以正常运行。

我的问题:当我让“自动”macros调用“隐藏”macros, Excel只是崩溃 ; 没有警告,没有 – 只是崩溃。

我的代码:

 Private Sub Worksheet_Calculate() Dim Xrg As Range Set Xrg = Range("H3:H70") If Not Intersect(Xrg, Range("H3:H70")) Is Nothing Then Macro1 End If End Sub Sub Sample() MsgBox "Yes" End Sub Sub Macro1() Dim cell As Range For Each cell In Range("H3:H70") If Not IsEmpty(cell) Then If cell.Value = 0 Then cell.EntireRow.Hidden = True End If If cell.Value = 1 Then cell.EntireRow.Hidden = False End If End If Next End Sub 

感谢您的任何build议和提示。

JeWe

不要放弃search:-)我给了它最后的search,并发现一些代码在microsfof点com网站似乎工作。 不要问我的细节,但这似乎做我在找什么

 Private Sub Worksheet_Calculate() Dim LastRow As Long, c As Range Application.EnableEvents = False On Error Resume Next For Each c In Range("H3:H70") If c.Value = 0 Then c.EntireRow.Hidden = True ElseIf c.Value = 1 Then c.EntireRow.Hidden = False End If Next On Error GoTo 0 Application.EnableEvents = True End Sub 

世界末日来临了,睡着了。 明天会更新。 Txs JeWe