我已经在这个VBA编程任务上工作了两个星期了。我学到了很多东西。我不认为有必要告诉您应用程序是什么,但如果您有点好奇,请查看以下链接(尤其是第一个):
VBA Class Object and Events ShapeRange Objects are acting weirdly
情况:
第一部分) 在Excel中创建对象时,它会为每个对象分配唯一的ID。假设您创建了10个形状,那么如果您查找ShapeRange数组,您将看到ID范围从2到11.它是直接的。如果删除最后一个形状(第10个形状),则ShapeRange数组的大小将从10更改为9,并且正在删除与ID = 11关联的形状。如果您创建一个新形状,它将是数组中的第10个形状,但分配的ID将是12而不是11。
第二部分) 创建和删除形状后,我添加了三个按钮。然后,我添加了更多的形状。最后,当我打印ShapeRange数组的内容时,我意识到当你添加一个像形状按钮这样的非形状对象时(在这种情况下它是真的),分配的ID不会跟随前一个趋势。我希望按钮具有以下ID:12,13和14(假设我之前创建了10个形状)。见下图:
A screenshot of my ShapeRange Array content
(第93-96行是形状,后跟3个按钮类型对象,然后第100行是形状)
这是我自己的项目,你看到这三个按钮有很多ID。没关系,但是当我创建另一个形状时,形状ID跟随按钮ID。
问题:
感谢您耐心等待并阅读整件事。 :)