gpt4 book ai didi

excel - VBA Excel选择并删除具有相同ID的所有形状并删除

转载 作者:行者123 更新时间:2023-12-04 21:09:46 25 4
gpt4 key购买 nike

我想从工作表中删除所有形状。他们有相同的ID。

enter image description here

我找到了两个代码:

第一个:

Public Sub ActiveShapes()
Dim ShpObject As Variant

If TypeName(Application.Selection) = "Firestop" Then
Set ShpObject = Application.Selection
ShpObject.Delete
Else
Exit Sub
End If
End Sub

不管用。没有错误,也没有任何 react 。

第二个:
Selecting a shape in Excel with VBA
 Sub Firestopshapes()
ActiveSheet.Shapes("Firestop").Delete
End Sub

有效,但只删除一个一个元素。在我的事件中,所有元素都有“Firestop”ID。我想让它们一次全部删除。我怎样才能做到这一点?

最佳答案

问题是 If TypeName(Application.Selection) = "Firestop" Then从来都不是真的。看看TypeName function不返回 姓名 Application.Selection但相反,它会返回 类型 Application.Selection是。在这里它可能返回 Object因为形状是对象。

其实名字是独一无二的。您不能添加 2 个具有相同名称的形状。这就是为什么ActiveSheet.Shapes("Firestop").Delete只删除一个形状。

似乎有一个错误,当您复制命名形状时,存在 2 个具有相同名称的形状(这应该是不可能的)。您可以通过在循环中删除该形状来解决此问题,直到出现错误(没有留下该名称的形状)。

On Error Resume Next
Do
ActiveSheet.Shapes("Firestop").Delete
If Err.Number <> 0 Then Exit Do
Loop
On Error GoTo 0 'don't forget this statement after the loop

关于excel - VBA Excel选择并删除具有相同ID的所有形状并删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60433388/

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