こんにちは私は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