1

在 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

提前喝彩

4

1 回答 1

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
于 2013-10-03T00:32:32.457 回答