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。但這對大規模來說根本不是好事。

這是最好的我能找到的解決方案。

相關內容