在条件未自动满足后,命令按钮不会重新启用

时间:2018-04-17 18:19:41

标签: excel excel-vba excel-formula excel-2016 vba

我创建了一个Command按钮并使用if条件编写了一个小代码以匹配我的条件。它的工作正常,如果它们是单元格/范围中的任何值,它根据代码“要求输入数据”,如果它们是任何值“说数据已经输入”并禁用按钮(我想要的是什么)。

但是,当我将数据/值重新输入这些单元格时,它不会自动重新启用该按钮。我必须手动转到属性才能启用它,我不想每次都这样做。

以下是我的代码“

Private Sub RESET_Click()
If Range("A10").Value = "" Then
  Reset.Enabled = False
  MsgBox "Data has already updated for this period"
Else
  Reset.Enabled = True
  MsgBox "Please, enter the data"
End If
End Sub

即使我在其他情况下列出了True,也不会重新启用该按钮。

请告诉我他们的方式。因此,我可以使用VBA自动在每月的第1天重置/重新启用此按钮。

感谢您的回复。

由于

1 个答案:

答案 0 :(得分:0)

按钮按下似乎触发了您的代码。这样,一旦满足if语句的第一个条件,该按钮就会被禁用,并且不再运行其代码。

也许你想要的是在细胞更换时重新按下按钮。因此,在将sub设置为public后,将此代码放在工作表上:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Target.Worksheet.Range("A10")) Is Nothing Then call RESET_click
End Sub

编辑:

也许您还必须setsub中的按钮对象:

Set Reset = yourworksheet.Buttons("yourbuttonname")

我还建议不要在VBA中使用Reset作为名称,因为它已经是一个声明,可能会引起混淆。