gpt4 book ai didi

excel - 当项目消失时运行 msgbox

转载 作者:行者123 更新时间:2023-12-04 22:22:29 24 4
gpt4 key购买 nike

我有一组可以删除的形状。
但是,如果其中至少一个被删除,那么我会收到一个错误,即找不到指定名称下的对象。

基本上我想发表评论,告诉我所有的形状都已经被删除了。

到目前为止,我的代码如下所示:

 Sub Civremov()
ActiveSheet.Shapes("Tobyshape").Delete
ActiveSheet.Shapes("Toby").Delete
ActiveSheet.Shapes("Upturnshape").Delete
ActiveSheet.Shapes("Upturndesc").Delete
ActiveSheet.Shapes("Duct1").Delete
ActiveSheet.Shapes("Duct2").Delete

End Sub

现在,当我再次尝试删除这些元素时,错误提示找不到指定名称下的对象。
我想做一个这样的文本框:
     Msgbox("You have already deleted all civil features").

我怎样才能做到这一点?

最佳答案

你可能会发现一个错误,但我个人通常喜欢遍历形状,检查它们的属性(在你的情况下是名称)并采取相应的行动。当在某个名称数组中找到形状的名称时,您可以选择删除形状吗?

例如:

Sub Test()

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("YourSheetName")
Dim arr As Variant: arr = Array("Tobyshape", "Toby", "Upturnshape", "Upturndesc", "Duct1", "Duct2")

For Each shp In ws.Shapes
If IsNumeric(Application.Match(shp.Name, arr, 0)) Then
shp.Delete
End If
Next

Msgbox "All relevant shapes are deleted." 'Optional

End Sub

如果我们说的是某种类型的形状,您还可以将该检查包含在您的 For 中。循环以最小化我们调用 Application.Match 的次数

关于excel - 当项目消失时运行 msgbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61363733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com