“操作excel”;“自选图形”;使用VBA

“操作excel”;“自选图形”;使用VBA,vba,excel,Vba,Excel,我正在尝试用VBA(Excel)编写一个宏,该宏被分配给一个复选框。无论何时单击复选框,“自选图形”都会将其“顺序”从“发送到后面”更改为“发送到前面” 基本上,我正在尝试创建一个包含多个面板的仪表板,这样用户就可以访问信息,而无需在工作表之间移动。每个面板将有一个矩形自选图形作为其背景,面板的组件将在自选图形中“分组” 这能做到吗?我将非常感谢您在编写代码时提出的任何想法 谢谢,我并没有完全遵循您更大的目标,但为了在前面形成一个形状,请使用以下命令: If MyCheckBox.Value =

我正在尝试用VBA(Excel)编写一个宏,该宏被分配给一个复选框。无论何时单击复选框,“自选图形”都会将其“顺序”从“发送到后面”更改为“发送到前面”

基本上,我正在尝试创建一个包含多个面板的仪表板,这样用户就可以访问信息,而无需在工作表之间移动。每个面板将有一个矩形自选图形作为其背景,面板的组件将在自选图形中“分组”

这能做到吗?我将非常感谢您在编写代码时提出的任何想法


谢谢,

我并没有完全遵循您更大的目标,但为了在前面形成一个形状,请使用以下命令:

If MyCheckBox.Value = True Then
    MySheetName.Shapes("MyShapeName").ZOrder msoBringToFront
End If
您应该从MsoZOrderCmd枚举中选择所需的ZOrder移动,并且您的代码应该位于复选框控件的更改事件例程中


编辑:

您也可以通过其索引号来引用形状。例如:

MySheetName.Shapes(0).ZOrder msoBringToFront
此外,要获取形状的名称,请单击它并查看Excel左上角(工具栏下方)的“名称”框,或者像这样迭代所有形状:

Sub Macro1()

Dim MyShape As Shape

For Each MyShape In Sheet1.Shapes

    Debug.Print MyShape.Name

Next MyShape

End Sub

Sub CheckBox3_Click()如果CheckBox3.Value=True,那么Sheet1.Shapes(“blueoval”).ZOrder msoBringToFront End如果End Sub这是我输入的代码。。为什么会出现运行时错误424?假设在设置zorder时出现该错误,这意味着VBA找不到名为“blueoval”的形状。你确定那是形状的名字吗?你确定在第一张纸上吗?