以下代码为一行单元格添加了复选框,并使用单元格地址
命名它们Dim CBX As CheckBox
For x = 3 To 9
With Cells(LastRow + 1, x)
Set CBX = .Parent.CheckBoxes.add _
(Top:=.Top, _
Left:=.Left, _
Width:=.Width, _
Height:=.Height)
CBX.Name = "ChkBox_" & .Address(0, 0)
CBX.Caption = ""
CBX.Value = xlOff
End With
Next x
我需要用户能够在任何给定时间删除一行以及驻留在其中的复选框 - 因此下面的代码
Dim strAgent As Long
strAgent = InputBox("Please enter the row number you wish to delete. WARNING - THIS CANNOT BE UNDONE")
Sheets(1).Shapes("ChkBox_C" & strAgent).Delete
Sheets(1).Shapes("ChkBox_D" & strAgent).Delete
Sheets(1).Shapes("ChkBox_E" & strAgent).Delete
Sheets(1).Shapes("ChkBox_F" & strAgent).Delete
Sheets(1).Shapes("ChkBox_G" & strAgent).Delete
Sheets(1).Shapes("ChkBox_H" & strAgent).Delete
Sheets(1).Shapes("ChkBox_I" & strAgent).Delete
Rows(strAgent).EntireRow.Delete
我遇到的问题是,一旦用户删除了行并且所有内容都被移动,复选框名称就不再正确引用它们所在的单元格。
如何遍历这些单元格中的所有复选框并根据新位置重命名?
注意:我使用表单控件复选框而不是activex复选框(即形状)。