【问题标题】:Command button not re-enabling after condition not met automatically未自动满足条件后命令按钮未重新启用
【发布时间】: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


【解决方案1】:

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

也许您想要的是在单元格更改时重新启用按钮。因此,将您的子设置为公开后,将此代码放在工作表上:

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 作为名称,因为它已经是一个语句,可能会引起混淆。

【讨论】:

  • 我已将我的代码更改为公共子并在工作表下添加私有子但它不起作用,每次都会抛出错误,它到达启用按钮代码行“Reset.enabled = True” .每次都会抛出“需要对象(#424)”错误。
  • @Jean,我没有尝试在我的 sub 中调用 sub,但我正在尝试启用命令按钮。
  • 清除扩展:如果单元格范围(“C5”C8“)为空,我能够运行上面的代码来成功检查条件并禁用命令按钮。但是,我无法使用“button.enabled = True”选项重新启用命令按钮(抛出“object required #424”错误)。所以,如果值中的值,我需要一个代码来启用命令按钮细胞变了??
  • 如果你设置了按钮对象?
猜你喜欢
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多