EXCEL VBA 与 F5 配合使用 - 但在单元格值更改时不会自动运行

EXCEL VBA 与 F5 配合使用 - 但在单元格值更改时不会自动运行

VBA 公式与 F5 完美配合

E 列单元格 E3:E5 具有计算美元金额的函数或者0.00 美元。

这是从 =SUM('MEDENT Proposal - Creator'!B15*15)

如果结果为 0.00 美元,则该线为隐藏-- 如果大于 0,则取消隐藏

Sub hidelines2()  
      If Range("E3").Value = 0 Then  
         Rows("3:3").EntireRow.Hidden = True  
  ElseIf Range("E3").Value > 0 Then  
         Rows("3:3").EntireRow.Hidden = False  
  End If  
      If Range("E4").Value = 0 Then  
         Rows("4:4").EntireRow.Hidden = True  
  ElseIf Range("E4").Value > 0 Then  
         Rows("4:4").EntireRow.Hidden = False  
  End If  
      If Range("E5").Value = 0 Then  
         Rows("5:5").EntireRow.Hidden = True  
  ElseIf Range("E5").Value > 0 Then  
         Rows("5:5").EntireRow.Hidden = False  
  End If  
End Sub

我的问题:我无法让这个自动运行当单元格值改变时。
已经提出了一些建议,但是都没有奏效。

答案1

Worksheet_Calculate您应该在想要更新的工作表事件中添加对您的子项的调用。

Private Sub Worksheet_Calculate()

    Call hidelines2

End Sub

将其放在正确的位置很重要,请参见下面的动画。

在此处输入图片描述

答案2

如果你不需要大规模使用,那么这个方法就可以了 -

Private Sub worksheet_selectionchange(ByVal Target As Range)
    If Range("E3") = 0 Then
        Range("E3").EntireRow.Hidden = True
        Else: Range("e4").EntireRow.Hidden = False
    End If
    If Range("E4") = 0 Then
        Range("E4").EntireRow.Hidden = True
        Else: Range("e4").EntireRow.Hidden = False
    End If
     If Range("E5") = 0 Then
        Range("E5").EntireRow.Hidden = True
        Else: Range("e5").EntireRow.Hidden = False
    End If
End Sub

除非您在表格中的某个位置更改选择,否则您不会看到 E3、E4 或 E5。但这对于大规模来说一点也不好。

这是最好的我能找到的解决方案。

相关内容