2012-11-05 5 views
4

의 모든 확인란 나는 세포의 특정 범위에있는 모든 활성 X 확인란 선택을 취소하기 위해 노력하고있어, 또는 열을 기준으로엑셀 VBA 스크립트는 분명 열

내가 그것을 할 수 있었다대로 간단한 것처럼 보인다 아래의 코드로 워크 시트 전체에 적용됩니다. 이 방법을 수정하여 단일 열 또는 셀 범위에만 적용하는 방법을 모르겠습니다.

Sub ClearAllCheckboxes() 
    Dim Answer As String 
    Dim MyNote As String 
    Dim Obj As Object 

    MyNote = "This will Clear all CheckBoxes Proceed? " 
    Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "???") 

    If Answer = vbNo Then 
    Exit Sub 
    Else 
    On Error Resume Next 
    For Each Obj In ActiveSheet.OLEObjects 
     Obj.Object.Value = False 
    Next Obj 
    End If 
End Sub 

답변

1

topleftcell 속성을 사용하여보십시오.

Sub ClearAllCheckboxes() 
    Dim Answer As String 
    Dim MyNote As String 
    Dim Obj As Object 
dim rg as range 

set rg=selection 

    MyNote = "This will Clear all CheckBoxes Proceed? " 
    Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "???") 

    If Answer = vbNo Then 
    Exit Sub 
    Else 
    On Error Resume Next 
    For Each Obj In ActiveSheet.OLEObjects 
     if not intersect(rg, obj.topleftcell) is nothing then _ 
     Obj.Object.Value = False 
    Next Obj 
    End If 
End Sub 
+1

기존 절차를 적용한 후 완벽하게 작동합니다. 대단히 감사합니다. –

+1

@SteveHobbs @SteveHobbs 새 사용자로서 nutsch의 답변에 동의 할 수 있습니다. 이것은 당신과 nutch (15) 모두에게 평판 포인트를 제공 할 것입니다. – brettdj

1
Obj.TopLeftCell.Column 

이 확인란에있는 어떤 열 말할 것을 바탕를, 당신이 그 값을 변경할 여부를 결정할 수 있습니다 .