###現在發現是n2歸零出現問題,請問如何修改###
Private Sub Command1_Click()
Dim a() As String '定義傳值a陣列
Dim a2() As String '定義傳值a2陣列
Dim a3() As String '定義傳值a3陣列
Dim a4() As String '定義傳值a4陣列
Dim a5() As String '定義傳值a5陣列
Dim a6() As String '定義傳值a6陣列
Dim a7() As String '定義傳值a7陣列
Dim a8() As String '定義傳值a8陣列
Dim a9() As String '定義傳值a9陣列
Dim a10() As String '定義傳值a10陣列
Dim a11() As String '定義傳值a11陣列
Dim i, j, t, n As Integer '定義回圈變數
Dim X(1 To 6) As String, y As Integer '定義一個6維陣列存盤下標及回圈變數
Dim M1%, M2%, M3%, M4%, M5%, M6%
Dim n2, n3, n4, n5, n6, n7, n8, n9, n10, n11 As Integer '定義計數變數
Dim k2, k3, k4, k5, k6, k7, k8, k9, k10, k11 As Integer '定義篩選回圈變數
Dim num(1 To 6) As Long '定義一個陣列接收符合條件的陣列
Text12 = ""
a = Split(Text1.Text, " ") '存入a陣列
a2 = Split(Text2.Text, " ") '存入a2陣列
a3 = Split(Text3.Text, " ") '存入a3陣列
a4 = Split(Text4.Text, " ") '存入a4陣列
a5 = Split(Text5.Text, " ") '存入a5陣列
a6 = Split(Text6.Text, " ") '存入a6陣列
a7 = Split(Text7.Text, " ") '存入a7陣列
a8 = Split(Text8.Text, " ") '存入a8陣列
a9 = Split(Text9.Text, " ") '存入a9陣列
a10 = Split(Text10.Text, " ") '存入a10陣列
a11 = Split(Text11.Text, " ") '存入a11陣列
Randomize '初始化亂數發生器
n2 = 0
For i = 1 To UBound(a) - 1
For j = i + 1 To UBound(a)
If Val(a(i)) > Val(a(j)) Then t = a(i): a(i) = a(j): a(j) = t 'a陣列大小排序
Next
Next
For M1 = 0 To UBound(a) - 5
num(1) = a(M1) '遍歷陣列a的第一個數賦值給陣列num
For j = 0 To UBound(a2) '內回圈控制陣列a2
If Val(num(1)) = Val(a2(j)) Then n2 = n2 + 1 '如果每有一個數相同,則n2+1
Next j
For M2 = M1 + 1 To UBound(a) - 4
num(2) = a(M2) '遍歷陣列a的第二個數賦值給陣列num
For j = 0 To UBound(a2) '內回圈控制陣列a2
If Val(num(2)) = Val(a2(j)) Then n2 = n2 + 1 '如果每有一個數相同,則n2+1
Next j
For M3 = M2 + 1 To UBound(a) - 3
num(3) = a(M3) '遍歷陣列a的第三個數賦值給陣列num
For j = 0 To UBound(a2) '內回圈控制陣列a2
If Val(num(3)) = Val(a2(j)) Then n2 = n2 + 1 '如果每有一個數相同,則n2+1
Next j
For M4 = M3 + 1 To UBound(a) - 2
num(4) = a(M4) '遍歷陣列a的第四個數賦值給陣列num
For j = 0 To UBound(a2) '內回圈控制陣列a2
If Val(num(4)) = Val(a2(j)) Then n2 = n2 + 1 '如果每有一個數相同,則n2+1
Next j
For M5 = M4 + 1 To UBound(a) - 1
num(5) = a(M5) '遍歷陣列a的第五個數賦值給陣列num
For j = 0 To UBound(a2) '內回圈控制陣列a2
If Val(num(5)) = Val(a2(j)) Then n2 = n2 + 1 '如果每有一個數相同,則n2+1
Next j
For M6 = M5 + 1 To UBound(a)
num(6) = a(M6) '遍歷陣列a的第六個數賦值給陣列num
For j = 0 To UBound(a2) '內回圈控制陣列a2
If Val(num(6)) = Val(a2(j)) Then n2 = n2 + 1 '如果每有一個數相同,則n2+1
Next j
If n2 = 0 Then '如果條件為空,則直接輸出結果
For i = 1 To 6
Text12 = Text12 & num(i) & " "
Next i
Text12 = Text12 & vbCrLf
DoEvents
Else '如果條件不為空
If Val(Combo1.Text) = Val(Combo2.Text) Then '情況一
If n2 = Val(Combo1.Text) Or n2 = Val(Combo2.Text) Then '如果符合條件,則輸出結果
For i = 1 To 6
Text12 = Text12 & num(i) & " "
Next i
Text12 = Text12 & vbCrLf
DoEvents
Else '如果不符合條件,則不輸出結果
Text12 = Text12
End If
ElseIf Val(Combo1.Text) < Val(Combo2.Text) Then '情況二
If Val(Combo1.Text) <= n2 <= Val(Combo2.Text) Then '如果符合條件,則輸出結果
For i = 1 To 6
Text12 = Text12 & num(i) & " "
Next i
Text12 = Text12 & vbCrLf
DoEvents
Else '如果不符合條件,則不輸出結果
Text12 = Text12
End If
ElseIf Val(Combo1.Text) > Val(Combo2.Text) Then '情況三
If Val(Combo1.Text) >= n2 >= Val(Combo2.Text) Then '如果符合條件,則輸出結果
For i = 1 To 6
Text12 = Text12 & num(i) & " "
Next i
Text12 = Text12 & vbCrLf
DoEvents
Else '如果不符合條件,則不輸出結果
Text12 = Text12
End If
End If
End If
Next
Next
Next
Next
Next
Next
End Sub
uj5u.com熱心網友回復:
沒看出你的 n2 哪有“歸零”的問題……
恐怕是你自己沒弄懂“語法規定”吧!
你這兩處的寫法,讓你感覺它“進行1次邏輯運算之后,n2‘歸0’了、再繼續下一步的邏輯運算”,是吧?
ElseIf Val(Combo1.Text) < Val(Combo2.Text) Then '情況二
' If Val(Combo1.Text) <= n2 <= Val(Combo2.Text) Then '如果符合條件,則輸出結果
' 上面這句應改為:
If Val(Combo1.Text) <= n2 And n2 <= Val(Combo2.Text) Then
ElseIf Val(Combo1.Text) > Val(Combo2.Text) Then '情況三
' If Val(Combo1.Text) >= n2 >= Val(Combo2.Text) Then '如果符合條件,則輸出結果
' 上面這句應改為:
If Val(Combo1.Text) >= n2 And n2 >= Val(Combo2.Text) Then
uj5u.com熱心網友回復:
不簡單說一下你代碼的邏輯突然扔這么一大段,都懶得看代碼了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46913.html
標籤:VB基礎類
上一篇:vb呼叫DLL時,有VB6.EXE (Cipher.dll) 處有未經處理的例外:讀取位置 0x00000000 時發生訪問沖突
