excel - Set Shape .OnAction 导致 1004 错误:应用程序定义或对象定义错误
问题描述
我整个早上都在尝试解决这个错误,但无法处理它。看起来 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 行之前的字符串,甚至只是尝试将其设置为空字符串“”。没有骰子。
解决方案
解决了。组形状会干扰单个形状属性。以下工作可打破组,编辑形状,然后重新组合:
Function Macro1()
With ActiveSheet
.Shapes("Home").Ungroup
.Shapes("box").OnAction = "Macro2"
With .Shapes.Range("box").Regroup
.Name = "Home"
End With
End With
End Function
推荐阅读
- vue.js - 如何在 Vuepress 中添加自定义块/容器?
- excel - 在excel中替换文本子字符串中的多个变量
- javascript - 单击父项时如何获取子项ID?
- python - Tkinter Canvas create_window 定位问题
- java - Java:为什么这个 Equal-String 函数受到定时攻击的保护
- python - .exe 文件无法从通过 rtsp 连接的摄像机读取 VideoStream?
- google-cloud-platform - Dialogflow webhook 中的 ssml
- java - Java 8 如何在集合接口中有具体方法?
- mysql - MySQL左连接返回只返回一行
- python - mongoengine 在嵌套字段上获取值