我在Excel中有不同的按鈕,我想刪除除了一些之外的所有按鈕。VBA:刪除除了一個之外的所有按鈕的最佳方法
我跑
ActiveSheet.Buttons.Delete
,但我怎麼可以聲明保留一個(我們可以假設它被稱爲「MyButton1」)?
我在Excel中有不同的按鈕,我想刪除除了一些之外的所有按鈕。VBA:刪除除了一個之外的所有按鈕的最佳方法
我跑
ActiveSheet.Buttons.Delete
,但我怎麼可以聲明保留一個(我們可以假設它被稱爲「MyButton1」)?
通過循環訪問ActiveSheet.Shapes,您可以看到工作表上的所有不同按鈕。在下面的例子中,它將btn =
分配給它正在查看的當前按鈕。如果按鈕的名稱不是"MyButton1"
那麼它將被刪除。 Next將它發送回頂端以重新開始。
For Each btn In ActiveSheet.Buttons
If btn.Text <> "MyButton1" Then
btn.Delete
End If
Next
你可以做到這一點,並將「MyButton1」更改爲任何你想要的。由於我假設這不是你的實際按鈕的名稱。此外,如果由於某種原因您只有想要刪除那個特別命名的按鈕,您只需將<>
切換爲=
即可。因此,它會讀
If btn.Text = "MyButton1" Then btn.Delete
編輯 -
改變btn.Name
到btn.AlternativeText
搜索按鈕的可見文本而不是對象名稱本身。
編輯2 -
,你曾在你不想刪除工作表額外的元素我已經刪除ActiveSheet.Shapes。我用ActiveSheet.Buttons
替換了原始代碼,並用btn.Text
替換了AlternativeText
以標識按鈕名稱。同樣,如果您沒有在帶有按鈕的工作表上運行此代碼,則需要先參考工作簿和工作表。
我得到:指定集合中的索引超出範圍。我只改變了:如果btn.Name <>「myButton1」或btn.Name <>「myButton2」Then' – Thegamer23
您是否在按鈕所在的同一張桌面上運行宏?如果不是,則需要將活動頁更改爲Workbooks.Sheets(「Sheetname」)。形狀 例如,如果您正在使用標題爲「Book1」的工作簿,並且標題爲「Sheet1」。然後代碼將會:'對於工作簿中的每個btn(「Book1」)。表格(「Sheet1」)。形狀'然後代碼的其餘部分 – Busse
是的。我在同一張紙上 – Thegamer23
發佈您嘗試過的代碼。布斯一直非常慷慨地爲你寫這篇文章 - 大多數人不會。 – FreeMan