其中一个Excel自选图形的行为与另一个不同

其中一个Excel自选图形的行为与另一个不同,excel,vba,Excel,Vba,我有相同的代码片段打开三个不同的宏 Set c = ActiveSheet.Shapes(Application.Caller) 在其中的两个例子中,这条线正好抓住了我需要的形状。第三,它抛出 运行时错误“-2147024809(80070057)”: 找不到具有指定名称的项 然而,当我调试并突出显示这个问题宏中的Application.Caller时,我可以看到它知道它在看什么形状(在本例中是msoShapeSnip2SameRectangle)。如果有区别的话,可以使用msoShapeDo

我有相同的代码片段打开三个不同的宏

Set c = ActiveSheet.Shapes(Application.Caller)
在其中的两个例子中,这条线正好抓住了我需要的形状。第三,它抛出

运行时错误“-2147024809(80070057)”:

找不到具有指定名称的项

然而,当我调试并突出显示这个问题宏中的Application.Caller时,我可以看到它知道它在看什么形状(在本例中是msoShapeSnip2SameRectangle)。如果有区别的话,可以使用msoShapeDownArrow和msoshapemathmultiple


你知道为什么它在第三个宏中不起作用吗?我已经尝试先将其定义为形状和对象。

似乎传递给
应用程序的值有长度限制。调用者

如果我将该形状类型插入到图纸中,我会得到一个名为“剪同侧角矩形1”(长度=33)的形状,但传递给应用程序的值是“剪同侧角矩形1”(长度=30)

请注意,特定形状类型没有问题,只是默认名称的长度。如果将形状重命名为较短的形状,则可以

编辑:以前-