0

特定のセルのチェックボックスを削除するコードがありますが、選択した範囲のすべてのチェックボックスを削除する必要があります。以下は、特定のセルのチェックボックスを削除するコードです。

Columns("B:B").Select
Selection.Find(What:="FIELD SERVICES", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(1, -1).Select
Dim CB8 As CheckBox
For Each CB8 In ActiveSheet.CheckBoxes
    If CB8.TopLeftCell.Address = ActiveCell.Address Then CB8.Delete
    Next

以下は、必要な範囲のセルを削除するように変更しようとした方法ですが、範囲の最初のセルのチェックボックスのみを削除します。

Columns("B:B").Select
Selection.Find(What:="FIELD SERVICES", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
Range(ActiveCell.Offset(1, -1), ActiveCell.Offset(8, 0).Select
Dim CB8 As CheckBox
For Each CB8 In ActiveSheet.CheckBoxes
    If CB8.TopLeftCell.Address = ActiveCell.Address Then CB8.Delete
    Next

どんなアドバイスでも大歓迎です。

4

1 に答える 1

2
Dim f as Range, cbRange as range
Dim CB8 As CheckBox


Set f = Columns("B:B").Find(What:="FIELD SERVICES", After:=ActiveCell, _
                            LookIn:=xlFormulas, LookAt:=xlPart)

if not f is Nothing then
   set cbRange = f.parent.range(f.Offset(1, -1), f.Offset(8, 0))
   For Each CB8 In ActiveSheet.CheckBoxes
     If not application.intersect(CB8.TopLeftCell, cbRange) is nothing Then CB8.Delete
   Next
end if
于 2013-03-19T20:48:12.073 に答える