워크시트 기반 확인란 선택 여부 확인
IF 절을 사용하여 "확인란 1"이라는 이름의 확인란이 선택되어 있는지 확인하려고 합니다.
현재 코드:
Sub Button167_Click()
If ActiveSheet.Shapes("Check Box 1") = True Then
Range("Y12").Value = 1
Else
Range("Y12").Value = 0
End If
End Sub
이거 안 돼요.디버거에서 문제가 있다고 합니다.
ActiveSheet.Shapes("Check Box 1")
그러나 이 코드가 작동한다는 것을 알고 있습니다(비록 다른 용도로 사용되지만).
ActiveSheet.Shapes("Check Box 1").Select
With Selection
.Value = xlOn
내 확인란(내 페이지에는 200개가 있습니다)은 시트 1에 "요구"라는 이름으로 있습니다.각 확인란의 형식은 "확인란..."과 동일합니다.
Sub Button167_Click()
If ThisWorkbook.Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then
Range("Y12").Value = 1
Else
Range("Y12").Value = 0
End If
End Sub
1은 선택, -4146은 선택 해제, 2는 혼합(회색 상자)
이것이 당신이 시도하는 것입니까?
Sub Sample()
Dim cb As Shape
Set cb = ActiveSheet.Shapes("Check Box 1")
If cb.OLEFormat.Object.Value = 1 Then
MsgBox "Checkbox is Checked"
Else
MsgBox "Checkbox is not Checked"
End If
End Sub
교체하다Activesheet
관련 시트 이름과 함께.또한 교체Check Box 1
관련 확인란 이름을 사용합니다.
ActiveX 확인란 컨트롤의 VBA 매크로 코드에서 다음을 사용하는 것 같습니다.
If (ActiveSheet.OLEObjects("CheckBox1").Object.Value = True)
양식 확인란 컨트롤의 경우 다음을 사용합니다.
If (ActiveSheet.Shapes("CheckBox1").OLEFormat.Object.Value = 1)
이전의 답변을 바탕으로, 당신은 다음과 같은 사실을 활용할 수 있습니다.True
-1이고False
0이고 다음과 같이 코드를 줄입니다.
Sub Button167_Click()
Range("Y12").Value = _
Abs(Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value > 0)
End Sub
확인란이 선택된 경우.Value
= 1.
Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value > 0
돌아온다True
.
적용Abs
함수 변환기True
로.1
.
확인란을 선택하지 않은 경우.Value
= -4146.
Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value > 0
돌아온다False
.
적용Abs
함수 변환기False
로.0
.
시도:Controls("Check Box 1") = True
언급URL : https://stackoverflow.com/questions/11741836/checking-if-a-worksheet-based-checkbox-is-checked
'programing' 카테고리의 다른 글
위치 매개 변수가 있는 Git 별칭 (0) | 2023.05.31 |
---|---|
Ruby 'require' 오류: 해당 파일을 로드할 수 없습니다. (0) | 2023.05.31 |
equal?, eql?, === 및 ==의 차이점은 무엇입니까? (0) | 2023.05.31 |
Flexbox 항목 간의 거리를 설정하려면 어떻게 해야 합니까? (0) | 2023.05.31 |
Eclipse 오류: 필요한 .class 파일에서 간접적으로 참조됩니까? (0) | 2023.05.31 |