在Excel中,我创建了一组形状,包括一些复选框和一个白色矩形。我把它们命名为“grouponeone”。我还创建了一个名为“oneonebutton”的矩形
我想要发生的是,当矩形“oneonebutton”处于非活动状态时,文本框架会引用一个命名单元格(称之为“namedcell”)。单击时,它将更改为“选择选项”,组将显示在按钮下方。单击时,复选框会在图形上绘制散点值。再次单击时,它将恢复为初始状态。
到目前为止,这是我的代码,但是我被卡住并且是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
提前干杯
答案 0 :(得分:1)
到目前为止你所看到的对我来说是好的(下面有一些建议的改动)。
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
如何继续进行可能部分取决于您拥有的复选框类型。
例如:如果您使用表单复选框,那么您可以将它们全部链接到类似下面的子项(根据复选框的名称切换您执行的操作)
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