Set Shape .OnAction导致1004错误:应用程序定义或对象定义的错误

问题描述 投票:0回答:1

我一直在努力解决这个错误,整个早晨都无法解决。看起来Excel真的只是不希望我设置这种形状的OnAction属性。

形状是一组其他矩形/文本框的一部分。

该代码适用于非分组形状。

  • 工作簿没有锁定的内容
  • 没有外部宏或任何东西,两个功能都在同一模块中
    Function Macro1()

    MsgBox (ActiveSheet.Shapes("box").OnAction)  'Returns the current OnAction string, as expected.

    ActiveSheet.Shapes("box").OnAction = "'WorksheetName'!Macro2"  '1004 error occurs here

    End Function

我已经尝试将其设置为“ Macro2”,Macro2,将其另存为OnAction行之前的字符串,甚至只是尝试将其设置为空字符串“”。没有骰子。

excel vba
1个回答
0
投票

已解决组形状会干扰各个形状属性。以下工作可打破分组,编辑形状,然后重新分组:

Function Macro1()
    With ActiveSheet
        .Shapes("Home").Ungroup
        .Shapes("box").OnAction = "Macro2"
        With .Shapes.Range("box").Regroup
            .Name = "Home"
        End With
    End With
End Function
© www.soinside.com 2019 - 2024. All rights reserved.