1、i = 0在n的循環內,i將永遠不會大於1的。
2、需要重新定義數組c:redim
3、b(2) = Mid(Text1.Text, 7, 3): b(3) = Mid(Text1.Text, 10, 3)
數組a都是兩位,而b(2)、b(3)為三位,這倆不會與a交集成功。
4、數組a的定義可簡化為:a=split("01,10,11,35,47,56,67,76,83,99",","),去掉以下3句:
Dim a(0 To 9) As String '定義壹個內置的數組
a(0) = "01": a(1) = 10: a(2) = 11: a(3) = 35: a(4) = 47: a(5) = 56:
a(6) = 67: a(7) = 76: a(8) = 83: a(9) = 99 '給數組a賦值
Private Sub Command1_Click()
Dim a(0 To 9) As String '定義壹個內置的數組
Dim b(0 To 3) As String '文本框中 輸入的數組
Dim c() As String '數組a與數組b的交集
Dim m As Byte '定義 數組a的循環變量
Dim n As Byte '定義 數組b的循環變量
Dim i As Byte '定義 交集c的元素數量
a(0) = "01": a(1) = 10: a(2) = 11: a(3) = 35: a(4) = 47: a(5) = 56:
a(6) = 67: a(7) = 76: a(8) = 83: a(9) = 99 '給數組a賦值
b(0) = Mid(Text1.Text, 1, 2): b(1) = Mid(Text1.Text, 4, 2):
b(2) = Mid(Text1.Text, 7, 3): b(3) = Mid(Text1.Text, 10, 3) '給數組b賦值
i = 0
For m = 0 To 9
For n = 0 To 3
If a(m) = b(n) Then
ReDim Preserve c(i)
c(i) = a(m): i = i + 1: Exit For
End If
Next n
Next m '循環得到交集 c
If UBound(c) + 1 >= 2 Then '獲得交集c中元素的個數
Text2.Text = 可以執行
End If
End Sub
假定b(2) = Mid(Text1.Text, 7, 2): b(3) = Mid(Text1.Text, 10, 2),程序可如下簡化:
Private Sub Command1_Click()
For i = 1 To 10 Step 3
s = Mid(Text1.Text & Space(20), i, 2)
If InStr(",01,10,11,35,47,56,67,76,83,99,", "," & s & ",") > 0 Then Exit For
Next
Text2.Text = IIf(i > 10, "", "可以執行")
End Sub