Excel:根据形状的内容隐藏一组对象

在Excel中,我创build了一组形状,这些形状包含一些checkbox和一个白色的矩形。 我已经命名这些“grouponeone”。 我也创build了一个叫做“oneonebutton”的矩形

我想要发生的是,当矩形“oneonebutton”是不活动的文本框架引用一个命名单元格(称之为“namedcell”)。 点击后,它将更改为“select选项”,该组将显示在button下方。 点击时,checkbox会在graphics上绘制散点图。 当再次点击时,它将恢复到初始状态。

这是我的代码到目前为止,但我坚持和新VBA我一直在黑客运气好。 非常感谢帮助。

Sub checkboxmacro() If SelShp.TextFrame2.TextRange.Characters.Text = Range("namedcell") Then group11.Visible= False SelShp.TextFrame2.TextRange.Characters.Text = "Select Options" Else group11.Visible = True SelShp.TextFrame2.TextRange.Characters.Text = Range("experimentoneonename") End If End Sub 

提前欢呼

你到目前为止看起来还不错(下面的一些build议的变化)。

 Sub Tester() Const STR_SELECT As String = "Select Options (click here when done)" Dim shp As Shape, tr As TextRange2, grp As Shape Set shp = ActiveSheet.Shapes(Application.Caller) Set tr = shp.TextFrame2.TextRange Set grp = ActiveSheet.Shapes("grpOne") If tr.Characters.Text <> STR_SELECT Then tr.Characters.Text = STR_SELECT grp.Visible = True Else tr.Characters.Text = ActiveSheet.Range("namedcell") grp.Visible = False End If End Sub 

如何继续可能部分取决于你有什么types的checkbox。

例如:如果你使用窗体checkbox,那么你可以把它们全部链接起来,像下面的子窗体一样(根据checkbox的名称切换你的操作)

 Sub Checker() Dim ac As String ac = Application.Caller Debug.Print ac, ActiveSheet.CheckBoxes(ac).Value 'do something based on checkbox name and value... End Sub