我正在构建订单配置电子表格。各种产品类别都有不兼容的选项,因此我在A列中创建了一些复选框。我想创建一个控制按钮,从列H:L中选择每行的内容,其中包含一个选中的复选框并将其删除,然后取消选中该复选框。我真的不知道如何编写这样的代码。非常感谢您的帮助。
Sub EliminateCheckBoxes()
Dim CB As CheckBox, n As Long, x As Long
n = ActiveSheet.CheckBoxes.Count
For x = n To 1 Step -1
Set CB = ActiveSheet.CheckBoxes(x)
If CB.Name <> "Check Box 1" Then
Next x
End Sub
答案 0 :(得分:3)
您需要使用链接到相关行的复选框的属性。要么(如果链接)使用.LinkedCell(字符串然后获取范围对象),否则如果位于相关行上则.TopLeftCell(范围)
E.g:
'Using LinkedCell
Range(cb.LinkedCell).EntireRow.Range("H1:L1").Delete
'or using TopLeftCell
cb.TopLeftCell.EntireRow.Range("H1:L1").Delete
cb.Value = -4146 'uncheck the checkbox
上面的代码示例以及是否选中该复选框的附加检查:
Sub EliminateCheckBoxes()
Dim CB As CheckBox, n As Long, x As Long
n = ActiveSheet.CheckBoxes.Count
For x = n To 1 Step -1
Set CB = ActiveSheet.CheckBoxes(x)
If CB.Name <> "Check Box 1" Then 'are you intentionally excluding Check Box 1?
If CB.Value = 1 then
CB.TopLeftCell.EntireRow.Range("H1:L1").ClearContents
CB.Value = -4146 'uncheck the checkbox
End If
End If
Next x
End Sub