我需要禁止用户在条件下通过Developer菜单插入的某些Excel 2007组合框控件中选择值。现在我设法只显示/隐藏控件。
ActiveWorkbook.Worksheets("summary").Shapes("months").Visible = year <> ""
是否可以启用/禁用它?
答案 0 :(得分:2)
如果你使用ActiveX组合框而不是Forms组合框,这不会导致“典型”启用/禁用控件,但它确实阻止用户访问它:
Sub ChangeState()
Dim shp As Shape
Set shp = ActiveWorkbook.Worksheets("summary").Shapes("months")
shp.ControlFormat.Enabled = Not shp.ControlFormat.Enabled
End Sub
答案 1 :(得分:1)
我曾经遇到过与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
答案 2 :(得分:0)
我已经找到了可以通过
禁用组合框控件的内容ActiveWorkbook.Worksheets("summary").DropDowns("months").Enabled = year <> ""
但不幸的是,它在视觉上显示其状态时不会变灰。