[英]Rerun Excel macro when data gets updated
我正在嘗試創建一個宏,如果特定列中的單元格包含0值,則該宏將隱藏行。
我從另一個論壇中找到了要使用的宏,該宏將隱藏行(如下所示),但僅在第一次刷新數據時才隱藏行。 我在工作表頂部使用數據驗證單元,該數據驗證單元從另一工作表中提取數據以填充參考數據(工作表的其余部分使用SUMIFS)。
當我的團隊更新單元格以選擇各種選項(例如:美國,亞洲,歐洲,全部)時,我需要再次運行宏以隱藏任何包含0值的單元格。 我也不能有一個宏,它會與工作表中使用的SUMIFS公式混淆。
當前公式我有:
Sub HideRows()
Application.ScreenUpdating = False
Application.Calculation = xlManual
For Each c In Range("E7:E153")
If c.Value = 0 Then Rows(c.Row).Hidden = True
Next
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End Sub
我認為我所需要的只是在末尾添加某種重新運行或循環行,但不確定從何處去。 任何幫助將不勝感激。
TYVM。
您可以使用Worksheet_Change事件。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
Application.ScreenUpdating = False
Application.Calculation = xlManual
For Each c In Range("E7:E153")
If c.Value = 0 Then Rows(c.Row).Hidden = True Else Rows(c.Row).Hidden = False
Next
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "You just changed " & Target.Address
End Sub
從http://www.ozgrid.com/VBA/run-macros-change.htm借來的
只需引用target.Address到要修改的特定單元格,然后將其稱為HideRows
如果您需要先取消隱藏所有行,只需將此代碼添加到過程ActiveSheet.Cells.EntireRow.Hidden = False
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.