Excel VBA自动重命名checkbox

我目前正在用很多checkbox来处理几个Excel工作表。 当你input一个checkbox时,它的名称是CheckBox1,CheckBox2等,但是可以自动重命名它们吗? 在我的代码中,我现在必须将所有checkbox重命名为Rij11_1,Rij11_2等。

如果能够自动地逐行完成,那将节省很多时间。

有人知道如何做到这一点?

非常感谢!

亲切的问候,马克

假设checkbox在代码Sheet1的工作表上

Sub test() Dim obj As OLEObject, ChkBoxRow as long ChkBoxRow = 1 'Only change checkboxes with topleft corner in row 1 With Sheet1 'Loop AX controls For Each obj In .OLEObjects 'Check for checkbox only If TypeName(obj.Object) = "CheckBox" Then 'Examples to identify location (as suggested by Dick Kusleika) 'ChkBoxRow = obj.TopLeftCell.Row 'ChkBoxCol = obj.TopLeftCell.Column 'ChkBoxAdd = obj.TopLeftCell.Address 'ChkBoxRow = obj.BottomRightCell.Row 'ChkBoxCol = obj.BottomRightCell.Column 'ChkBoxAdd = obj.BottomRightCell.Address 'etc if obj.TopLeftCell.Row = ChkBoxRow then obj.Name = "Rij11_" & Right(obj.Name, Len(obj.Name) - 8) end if End If Next obj End With End Sub 

我已经更新显示了一个不错的方法迪克Kusleika指出有一天,以查找checkbox所在的位置。 你可以testingIf obj.TopLeftCell.Row = 1 Then等等