저는 Mac 2011 용 Excel을 사용하고 있으며 한 장에 몇 개의 확인란이 있습니다. 나는 다음과 같은 코드를 자동화하기 위해 노력하고있어 : 런타임 오류 445 개체가이 작업을 지원하지 않습니다ActiveSheet vs. WorkSheet
Private Sub CheckBox12_Click()
Dim ws As Worksheet
Set ws = ActiveSheet
With ws
If .Shapes("CheckBox12").OLEFormat.Object.Value = xlOn Then
.Range("CK1").EntireColumn.Hidden = False
Else
.Range("CK1").EntireColumn.Hidden = True
End If
End With
End Sub
이 코드는 나에게 오류를 제공합니다.
은 제거 WS 및 단지
Private Sub CheckBox12_Click()
With ActiveSheet
If .Shapes("CheckBox12").OLEFormat.Object.Value = xlOn Then
.Range("CK1").EntireColumn.Hidden = False
Else
.Range("CK1").EntireColumn.Hidden = True
End If
End With
End Sub
을하지만 경우에 잘 작동합니다.
여기 거래가 무엇입니까? 나는 ActiveSheet를 사용할 수 있다는 것을 알고 있지만 항상 코드로 프로퍼티의 드롭 다운리스트를 제공하기 때문에 먼저 ws를 설정하는 것을 좋아한다.
코드의 체크 박스 부분을 시도해 보았습니다. 활성 시트인지 워크 시트인지에 관계없이 작동합니다. 문제는 다른 곳에있는 것처럼 보인다. 참고 : 저는 Windows OS에서 작업하고 있습니다. – hnk
Dimws As Worksheet로 방금 선언했으나 실제 워크 시트에 지정하지 않았습니다. 귀하의 질문에 대한 빠른 답변 : 두 번째 코드 스 니펫을 사용하십시오. 감사합니다, –
고마워. 알렉스 내가 말한 후 Set ws = ActiveSheet라고 말하면 충분하지 않습니까? – Yunfei