通过VBA使形状在excel中不可见/可见

Mat*_*phy 2 excel vba

我在过去的几个小时内遇到了这个问题,我真的很感激它的一些帮助.

基本上,我希望能够根据用户对用户表单的选择隐藏/取消隐藏形状.我把问题分解成一个非常简单的例子.如果我在工作表中插入一个名为"椭圆1"的形状并运行代码:

Sub hideshape()

Sub hideshape()

    With ActiveSheet

        .Shapes("Oval 1").Select

        With Selection

        .Visible = False

        End With

    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

结束子

形状消失,但是当我运行此代码时

Sub unhideshape()

Sub unhideshape()

    With ActiveSheet

        .Shapes("Oval 1").Select

        With Selection

        .Visible = True

        End With

    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

结束子

我收到错误"请求的形状被锁定以供选择"

工作簿没有受到保护,我尝试在形状属性上取消勾选锁定和锁定的文本.

是什么导致了这一点.

谢谢你的帮助

A.S*_*S.H 6

你不能Select是一个隐藏的对象.但是,您Select根本不需要使用,通常不建议使用.试试简单:

Sub HideShape()
    ActiveSheet.Shapes("Oval 1").Visible = False
End Sub
Sub UnhideShape()
    ActiveSheet.Shapes("Oval 1").Visible = True
End Sub
Run Code Online (Sandbox Code Playgroud)