【问题标题】:Button Visible property not working in Excel VBA按钮可见属性在 Excel VBA 中不起作用
【发布时间】:2018-05-29 02:30:14
【问题描述】:

我正在处理一个非常简单的电子表格,其中直接在工作表上使用命令按钮(表单控件,而不是 ActiveX)。我想让它在单击一次按钮时隐藏或锁定,以便在不重新打开工作表的情况下无法再次单击它。

我试过btnNewMonth.VisiblebtnNewMonth.Locked,但这些都不起作用。我已经检查了大约 500 次拼写错误,但我找不到任何错误。还有什么我可能做错的吗?

我已将整个代码粘贴到此处,但有问题的行是最后一行。它抛出

运行时错误 424:需要对象。

Sub btnNewMonth_Click()

Dim lastmonth As Variant

Cells(1, 1) = DateAdd("m", 1, DateValue(Cells(1, 1)))
lastmonth = Range("D6:D9")
Range("C6:C9") = lastmonth
Range("D6:D9") = ""
Range("B17:G18") = ""
Range("B20:G21") = ""

btnNewMonth.Visible = False  'Run-time error 424: Object required

End Sub

【问题讨论】:

  • 请显示 btnBewMonth 的声明
  • @SMeaden 没有这样的声明 - 这几乎就是问题所在;-)
  • 尝试oWS.Buttons("btnNewMonth").Visible = False,其中oWS 是此按钮所在的工作表对象。

标签: excel vba


【解决方案1】:

如果您需要在工作表上找到 ActiveX 或表单控件,请参阅 this answer

在这种情况下,这就足够了:

ActiveSheet.Shapes.Item("btnNewMonth").Visible = False

我强烈建议使用特定的 Worksheet 对象,而不是隐式或显式地使用 ActiveSheet。例如,如果您将工作表的(Name) 属性更改为SummarySheet,那么您可以这样做:

SummarySheet.Shapes.Item("btnNewMonth").Visible = False

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    相关资源
    最近更新 更多