我创建了一个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天重置/重新启用此按钮。
感谢您的回复。
由于
答案 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
编辑:
也许您还必须set
主sub
中的按钮对象:
Set Reset = yourworksheet.Buttons("yourbuttonname")
我还建议不要在VBA中使用Reset
作为名称,因为它已经是一个声明,可能会引起混淆。