【发布时间】:2018-09-27 19:46:57
【问题描述】:
我创建了一个命令按钮并使用 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
即使在我在 else 条件下列出 True 之后,它也不会重新启用按钮。
如果他们是这样的话,请告诉我。因此,我可以使用 VBA 在每月 1 日自动重置/重新启用此按钮。
感谢您的回复。
谢谢
【问题讨论】:
-
当你想重置时你真的在调用这个子吗?它没有监听事件,所以除非你调用它,否则它不会被调用。
-
你的意思是,我使用这个 SUB 只是每个月输入一个数据,如果单元格是空的,那么它应该自动禁用按钮(这样用户就可以在那些空单元格并保存)。当单元格有数据时,应启用此按钮。所以,我可以在相同的条件下附加一些其他宏,这样它就可以运行并清除单元格并禁用。因此,用户可以在他进来时输入他的数据。
-
即使,如果还有另一种方法。所以,这个按钮一旦点击就会被禁用,所以没有人可以再次运行它。因此,它可以在每个月的 1 日重新启用。但是,我认为只要单元格为空,上述条件会更好,它应该被禁用。但是,感谢,如果有人可以附上这段代码,那么我可以在需要时采用替代选项。
-
@rockstar
Reset是您按钮的名称吗?它是一个 ActiveX 命令按钮吗?您可能需要明确参考您的工作表 (Sheets("Sheet1").Reset.Enabled = False) 等。您还应该明确参考您的条件范围,Sheets("Sheet1").Range("A10").Value = ""。 -
@rockstar 看起来您的按钮名称是
RESET,但您在代码中将其称为Reset。我相信它是区分大小写的。
标签: excel excel-formula excel-2016 vba