我一直在嘗試在 Excel 上使用 2 個影像(1 個用于 Tick,1 個用于 Untick)復制一個復選框,但我遇到了一個問題,因為我根本就沒有在 VBA 中編碼;除了宏。

我有多個要勾選/取消勾選的復選框。我可以為他們每個人錄制一個宏,但這樣做會很乏味且效率低下(總共有 22 個復選框) 宏代碼看起來像這樣。
Sub Tick()
ActiveSheet.Shapes.Range(Array("Picture 23")).Select
Selection.ShapeRange.ZOrder msoSendToBack
End Sub
Sub Untick()
ActiveSheet.Shapes.Range(Array("Picture 22")).Select
Selection.ShapeRange.ZOrder msoSendToBack
End Sub
我的問題很簡單:如何獲取單擊的影像的參考以便將相同的參考注入代碼并設定其 ZOrder?
我不能使用 Excel 的復選框,因為它們太小了。
uj5u.com熱心網友回復:
嘗試關注
Sub TickToggle()
On Error GoTo EH
Dim caller As Variant
caller = Application.caller
If Not IsError(caller) Then
ActiveSheet.Shapes(caller).ZOrder msoSendToBack
Select Case caller
Case "Checkbox1_tick":
' your code for when the checkbox1 is unticked
Case "Checkbox1_untick":
' your code for when the checkbox1 is ticked
End Select
End If
EH:
End Sub
此外,嘗試為這些形狀使用更有意義的名稱(如上),以便在呼叫者值上使用選擇大小寫,并根據單擊的內容執行不同的操作。您可以分配TickToggle給所有復選框形狀,這是首選(可重用性)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/519605.html
標籤:擅长vba
上一篇:VBAExcel的正則運算式模式
