启用/禁用 Excel 2007 组合框
Posted
技术标签:
【中文标题】启用/禁用 Excel 2007 组合框【英文标题】:Enable/disable Excel 2007 combobox 【发布时间】:2010-11-29 11:54:54 【问题描述】:我需要禁止用户在某些通过开发人员菜单插入的 Excel 2007 组合框控件中按条件选择值。现在我只能显示/隐藏控件。
ActiveWorkbook.Worksheets("summary").Shapes("months").Visible = year <> ""
是否可以改为启用/禁用它?
【问题讨论】:
【参考方案1】:如果您使用 ActiveX 组合框而不是 Forms 组合框,这不会产生“典型”的启用/禁用控件,但它确实会阻止用户访问它:
Sub ChangeState()
Dim shp As Shape
Set shp = ActiveWorkbook.Worksheets("summary").Shapes("months")
shp.ControlFormat.Enabled = Not shp.ControlFormat.Enabled
End Sub
【讨论】:
【参考方案2】:我找到了可以禁用组合框控件的内容
ActiveWorkbook.Worksheets("summary").DropDowns("months").Enabled = year <> ""
但不幸的是,它不会变灰以直观地显示其状态。
【讨论】:
【参考方案3】:我曾经在使用 MS Access 时遇到过同样的问题。
状态(启用/禁用)与显示不同(背景颜色 = 灰色)
我过去解决这个问题的方法是两者兼而有之:
Dim enabled As Boolean
enabled = year <> ""
ActiveWorkbook.Worksheets("Sheet1").Shapes(1).Enabled = enabled
If enabled Then
ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbGrey
Else
ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbWheat
End If
【讨论】:
我相信 Shape 对象在 Excel 中没有 Enabled 属性,因此应该使用 Shapes(1).ControlFormat.Enabled。谢谢!以上是关于启用/禁用 Excel 2007 组合框的主要内容,如果未能解决你的问题,请参考以下文章