我需要在VBA excel中选中复选框旁边的另一个数据列表。代码是什么?

时间:2018-06-12 11:42:07

标签: excel-vba vba excel

我需要列出勾选复选框旁边的数据。所以我有大约190个复选框,我需要在同一张表中创建一个只有已检查数据的新列表。以前我使用过Y或N选项,这是一个想法的代码。

由于我被迫添加更多细节,我必须写不必要的单词

Sub Button1_Click()

For I = 5 To 45
If (I = 20) Then

    I = I + 3
Else
If (I = 28) Then

    I = I + 3
End If
End If
If ((Worksheets("tests").Cells(I, 14) <> "Y") And (Worksheets("tests").Cells(I, 14) <> "N")) Then

    Worksheets("tests").Cells(250, 2) = Worksheets("tests").Cells(300, 2)
    TEMP = I
    Range(Cells(233, 1), Cells(233, 1)).Select
    GoTo 85
End If
Next I
For I = 83 To 126
Worksheets("tests").Cells(I, 3) = Worksheets("tests").Cells(3, 12)
Worksheets("tests").Cells(I, 2) = Worksheets("tests").Cells(I, 3)
Next I
For I = 133 To 172
Worksheets("tests").Cells(I, 3) = Worksheets("tests").Cells(3, 12)
Worksheets("tests").Cells(I, 2) = Worksheets("tests").Cells(I, 3)
Next I
J = 83
SUM1 = 0
For I = 5 To 19
If (Worksheets("tests").Cells(I, 14) = "Y") Then
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(3, 2)
    I = 19
Else
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(3, 12)
    SUM1 = SUM1 + 1
End If
Next I
If (SUM1 = 15) Then
GoTo 5
End If
J = J + 2
Sum = 0
For I = 5 To 19
If (Worksheets("tests").Cells(I, 14) = "Y") Then
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(I, 2)
    Sum = Sum + 1
    Worksheets("tests").Cells(J, 2) = Sum
If (J = 126) Then
    J = J + 6
    GoTo 30
End If
30  
J = J + 1
End If
Next I
Sum = 0
J = J + 1
5 
SUM1 = 0
For I = 23 To 27
If (Worksheets("tests").Cells(I, 14) = "Y") Then
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(21, 2)
    I = 27
Else
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(3, 12)
    SUM1 = SUM1 + 1
End If
Next I
If (SUM1 = 5) Then
GoTo 10
End If
J = J + 2
For I = 23 To 27
If (Worksheets("tests").Cells(I, 14) = "Y") Then
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(I, 2)
    Sum = Sum + 1
    Worksheets("tests").Cells(J, 2) = Sum
If (J = 126) Then
    J = J + 6
    GoTo 35
End If
35              
J = J + 1
Else
End If
Next I
Sum = 0
J = J + 1
10 
SUM1 = 0
For I = 31 To 45
If (Worksheets("tests").Cells(I, 14) = "Y") Then 
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(29, 2)
    I = 45
Else
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(3, 12)
    SUM1 = SUM1 + 1
End If
Next I
J = J + 2
For I = 31 To 45
If (Worksheets("tests").Cells(I, 14) = "Y") Then
    Worksheets("tests").Cells(J, 3) = Worksheets("tests").Cells(I, 2)
    Sum = Sum + 1
    Worksheets("tests").Cells(J, 2) = Sum
If (J = 126) Then
    J = J + 6
    GoTo 40
End If
40              
J = J + 1
Else
End If
Next I
Range(Cells(84, 1), Cells(84, 1)).Select
85       
Worksheets("tests").Cells(286, 15).Value = TEMP
250 
End Sub

Sub Button63_Click()
TEMP = Worksheets("tests").Cells(286, 15).Value
Range(Cells(TEMP, 14), Cells(TEMP, 14)).Select
End Sub

Sub MASTER()
Range(Cells(1, 1), Cells(1, 1)).Select
End Sub

Sub check()
Range(Cells(5, 14), Cells(5, 14)).Select
End Sub

0 个答案:

没有答案