gpt4 book ai didi

VBA删除带有范围的按钮

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

我试图弄清楚如何删除一个范围内的所有按钮。我已经看到很多关于如何删除工作表中的所有按钮而不是范围的示例。我创建了一个范围变量,其中包含按钮的所有可能出现(这用于重新初始化可变大小的形式)。问题是范围不支持对象 .Shapes 或 .Buttons。

        Set totalTable = Range(ActiveCell, ActiveCell.Cells(1000, 1000))
For Each gen_btn In totalTable.Shapes
gen_btn.Delete
Next

任何帮助,将不胜感激。另外,我不能使用 ActiveSheet,因为有一些我想保留的按钮,并且因为宏是由按钮调用的。因此需要一个范围。谢谢你。

最佳答案

此解决方案使用 Intersect 方法来查看形状是否在您的范围内,如果是则删除形状。

Sub Delete_Shapes_In_Range()

Dim btn As Shape
Dim totalTable As Range

Set totalTable = Range(ActiveCell, ActiveCell.Cells(1000, 1000))

For Each btn In ActiveSheet.Shapes
If Not Intersect(btn_rng, totalTable) Is Nothing Then btn.Delete
Next btn

End Sub

请注意,此代码不仅会删除按钮,还会删除其他形状。如果这是一个问题,您可以添加 If语句跳过某些形状。例如:
If Not btn.Name Like "Picture*" Then '<~~Will skip pictures

或者
If Not btn.Name Like "*box*" Then '<~~Will skip textboxes

等等。这假设您在创建形状后没有重命名它们。

关于VBA删除带有范围的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22309677/

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