簡體   English   中英

只要單元格從是更改為否,Excel VBA就會自動運行宏

[英]Excel VBA run Macro automatically whenever a cell is changed from yes to no

是否有一種簡單的方法讓Excel在單元格更改時自動執行宏?

Sub Change()
If Range("E94").Value = "no" Then
    Rows("95:118").EntireRow.Hidden = True
ElseIf Range("E94").Value = "yes" Then
    Rows("95:118").EntireRow.Hidden = False
End If
End Sub

如果有人將單元格E94中的值從“否”(標准)更改為“是”,則應從“ 95-118”“彈出”單元格。 如果我從“是”改回“否”,它們應該消失。

您可以將Worksheet_Change事件用於要運行此代碼的相關工作表。

在您的情況下,如果只想在單元格“ E94”更改的情況下運行此代碼,則需要檢查特定單元格是否已更改,請執行以下操作:

If Not Intersect(Target, Range("E94")) Is Nothing Then

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("E94")) Is Nothing Then
    If Target.Value = "no" Then
        Rows("95:118").EntireRow.Hidden = True
    ElseIf Target.Value = "yes" Then
        Rows("95:118").EntireRow.Hidden = False
    End If
End If

End Sub

使用Worksheet_Change事件:

Private Sub Worksheet_Change(ByVal Target As Range)
'Call your Sub here
End Sub

或者,您可以使用事件的目標范圍:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False,False) = "E94" Then
    If Target.Value = "no" Then
        Rows("95:118").EntireRow.Hidden = True
    ElseIf Target.Value = "yes" Then
        Rows("95:118").EntireRow.Hidden = False
    End If
End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM