禁用然后重新启用宏

时间:2016-09-30 14:07:07

标签: vba excel-vba excel

我使用以下作为时间戳。我想要一个按钮来禁用它(这样我可以在没有它的情况下进行编辑记录时间)和一个按钮来再次启用它。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.column = 12 And Target.Row = 9 Then
    If Target.Value = "" Then
        Target.Offset(0, 4).Value = ""
    Else
        Target.Offset(0, 4).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")
    End If
ElseIf Target.column = 12 And (Target.Row >= 10 And Target.Row <= 600) Then
    If Target.Value = "" Then
        Target.Offset(-1, 5).Value = ""
    Else
        Target.Offset(-1, 5).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")
    End If
End If
End Sub

2 个答案:

答案 0 :(得分:2)

使用切换按钮,返回true或false,然后使用第1行if togglebutton then exit sub

答案 1 :(得分:0)

使用一个按钮,它将更新单元格ZZ200(或根据您的选择),值为“ON”或“OFF”,并将您的代码置于如下条件:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Sheets("Sheet1").Range("ZZ200").Value = "ON" Then
        If Target.Column = 12 And Target.Row = 9 Then
            If Target.Value = "" Then
                Target.Offset(0, 4).Value = ""
            Else
                Target.Offset(0, 4).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")
            End If
        ElseIf Target.Column = 12 And (Target.Row >= 10 And Target.Row <= 600) Then
            If Target.Value = "" Then
                Target.Offset(-1, 5).Value = ""
            Else
                Target.Offset(-1, 5).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")
            End If
        End If
    End If
End Sub