안녕하세요 저는 vba에서 꽤 새로워졌습니다. 제발 코드를 쏘지 마세요 .--). 나는 리셋 코드 세트를 가지고있다. 나는 코드 명을 점점 더 많이 사용하면서이 코드를 단순화하고자한다. 나는 달릴 수 없다. 이 길을가는 길에 누군가 나를 조금 도울 수 있습니까? 내가 뭘하려고하는지 아래.루프로 코드 단순화
Sub Sheet1()
If SheetCheckBox1.Visible = False Then Exit Sub
If SheetCheckBox1.value = True Then
Sheets("Item_1").Select
Call Finalize
End If
End Sub
Sub Sheet2()
If SheetCheckBox2.Visible = False Then Exit Sub
If SheetCheckBox2.value = True Then
Sheets("Item_2").Select
Call Finalize
End If
End Sub
Sub Sheet3()
If SheetCheckBox3.Visible = False Then Exit Sub
If SheetCheckBox3.value = True Then
Sheets("Item_3").Select
Call Finalize
End If
End Sub
당신이 볼 수 있듯이해야한다 : 두 번째 블록은 이제 코드의 일부이다
Sub sheet41()
Dim i As Integer
Dim chkname As Integer
chkname = "SheetCheckBox" & i
i = 1
Do
i = i + 1
If chkname.Visible = False Then Exit Sub
If chkname.value = True Then
Sheets("Item_" & i).Select
Call Finalize
End If
Loop Until i = ThisWorkbook.Worksheets.Count
End Sub
이 이전 코드입니다 (그것은 단지 수를 증가 같은 코드의 40 개 블록이다) 나는 asume을 청소할 수 있습니다.
'chkname', 당신은 참조하는 실제 제어를 얻기 위해 단지 문자열이 필요 - 당신은 정수로 chkname를 정의한 왜 ..? – stuartd
@VladNeacsu 코드 검토는 작업 코드를위한 것입니다. 이것은 확실히 – stuartd
입니다. 또한 첫 번째 시트는 Sheet2입니다. 루프의 시작 부분에서 i를 증가시키고 초기 값은 1입니다. – stuartd