我有五个控件,分别为CheckBox1,CheckBox2,CheckBox3,CheckBox4,CheckBox5
我想不用像以下代码那么麻烦一个一个写,实现控件的遍历。哪位高手可以指点下:源程序:
Private Sub CheckBox1_Click()
i = CheckBox1.Value
If i = -1 Then
Cells(16, 2).Value = 1
Else
Cells(16, 2) = 0
End If
End SubPrivate Sub CheckBox2_Click()
k = CheckBox2.Value
If k = -1 Then
Cells(16, 3).Value = 2
Else
Cells(16, 3) = 0
End If
End SubPrivate Sub CheckBox3_Click()
k = CheckBox3.Value
If k = -1 Then
Cells(16, 3).Value = 3
Else
Cells(16, 3) = 0
End If
End SubPrivate Sub CheckBox4_Click()
k = CheckBox4.Value
If k = -1 Then
Cells(16, 4).Value = 4
Else
Cells(16, 4) = 0
End If
End SubPrivate Sub CheckBox5_Click()
k = CheckBox5.Value
If k = -1 Then
Cells(16, 5).Value = 5
Else
Cells(16, 5) = 0
End If
End Sub

解决方案 »

  1.   

    有规律就好办,写个过程或者函数..不知道你具体应用,比如:Sub CheckTest(n As Long)
        If Me.Controls("check" & n).Value Then
            Cells(16, i + 1).Value = 1
        Else
            Cells(16, i + 1).Value = 0
        End If
    End SubPrivate Sub Check1_Click()
        CheckTest 1
    End SubPrivate Sub Check2_Click()
        CheckTest 2
    End Sub
    ......
      

  2.   

    是这样的,我想实现这样的效果:
    选中第一个控件时,就在cells(16,1)显示1,没点中就null
    选中第二个空间时候,就在cells(16,2)显示2...
    如此类推...
      

  3.   


    用控件数组:Private Sub CheckBox1_Click(Byval Index As Integer) 
    If CheckBox1(Index) = vbChecked Then 
     Cells(16, Index + 1).Value = 1 
    Else 
     Cells(16, Index + 1) = 0 
    End If 
    End Sub 
      

  4.   

    把1楼的这段代码修改一下就可以了
    Sub CheckTest(n As Long)
        If Me.Controls("check" & n).Value Then
            Cells(16, i + 1).Value = 1
        Else
            Cells(16, i + 1).Value = 0
        End If
    End Sub
    改为
    Sub CheckTest(n As Long)
        If Me.Controls("check" & n).Value Then
            Cells(16, n ).Value = n
        Else
            Cells(16, n ).Value = 0
        End If
    End Sub
      

  5.   

    用这么多的CheckBox不如用控件数组了
      

  6.   

    五楼的代码运行时提示:这行If CheckBox1(Index) = vbChecked Then 类型不匹配
      

  7.   

    还有,我不想在窗体里面运行,我想在模块里面运行的代码
    在模块里面没有me.control属性,怎么办呢?