格式是这样:0000000000
比方说
满足1条件第一个变成1然后是1000000000
满足2条件第一个变成1然后是0100000000
.
.
.
满足10条件第一个变成1然后是0100000001满足第2 3 9个条件是 0110000010
但是因为数值型用加的办法不能实现
文本类型又会变成叠加

解决方案 »

  1.   

    Private Sub Command1_Click()
        Dim s As String
        Dim b(1 To 10) As Boolean
        s = "0000000000"
        b(2) = True
        b(3) = True
        b(9) = True
        Dim i As Integer
        For i = 1 To 10
            If b(i) Then Mid(s, i, 1) = "1"
        Next i
        MsgBox s
    End Sub
    不过没明白你说的满足条件10是什么意思
      

  2.   

    使用位运算即可。
    Private Const a1 = 1    ' 1
    Private Const a2 = 2    ' 10
    Private Const a3 = 4    ' 100
    Private Const a4 = 8    ' 1000
    Private Const a5 = 16   ' 10000
    Private Const a6 = 32   ' 100000
    Private Const a7 = 64   ' 1000000
    Private Const a8 = 128  ' 10000000
    Private Const a9 = 256  ' 100000000
    Private Const aa = 512  ' 1000000000
    Private Const ab = 1024 ' 10000000000
    Private Const ac = 2048 ' 100000000000当然还可以继续定义到16位,后面的值是二进制表示的。要设置某位的值可以使用or运算符,如:a1 or a3
    如果要得到某位的值可以使用and运算符,如:value and a3
      

  3.   

    Private Sub Command1_Click()
        Dim s As String
        Dim b(1 To 10) As Boolean
        Dim i As Integer    b(2) = True
        b(3) = True
        b(9) = True    For i = 1 To 10
            s = s & IIf(b(i), "1", "0")
        Next i
        MsgBox s
    End Sub
      

  4.   

    Private Sub Command1_Click()
        Dim s As String
        Dim b(1 To 10) As Boolean
        Dim i As Integer    b(2) = True
        b(3) = True
        b(9) = True    For i = 1 To 10
            s = s & IIf(b(i), "1", "0")
        Next i
        MsgBox s
    End Sub
      

  5.   

    但是因为数值型用加的办法不能实现
    文本类型又会变成叠加
    ==================
    数值相加后用format格式化一下就可以了
    比如你239相加后是:
    n=110000010
    然后:
    s=format(n,"0000000000")
      

  6.   

    dim n as long 
    n = 10msgbox  format(n,"0000000")