[CDEDE=VB]
Private Sub Command15_Click()
Dim str1 As String, c As String
Dim arr() As String
Dim ii As Integer, hh As Integer, y As Integer
Dim a(1 To 12) As String
Dim count(7 To 12) As Long
Dim s As Integer
Dim i As Long, j As Long, k As Long, m As Long
Dim h As String
For ii = 0 To List2.ListIndex
str1 = List2.List(ii)
arr = Split(str1, ",")
For i = 0 To 11
a(i + 1) = arr(i)
Next
For y = 1 To MSFlexGrid1.Rows - 1
s = MSFlexGrid1.TextMatrix(y, 1)
c = s
If Len(c) = 3 And IsNumeric(c) And InStr(1, c, "-") = 0 And InStr(1, c, ".") = 0 And InStr(1, c, "E") = 0 Then
For k = 1 To 3
For j = 7 To 12
If InStr(1, a(j), Mid(c, k, 1)) <> 0 Then count(j) = count(j) + 1
Next j
Next k
For m = 7 To 12
If count(m) <> 0 Then
h = h & count(m) & a(m - 6)
End If
Next
End If
hh = MSFlexGrid1.Col
MSFlexGrid1.TextMatrix(y, hh + ii) = h
Next
Next
End Sub
[/CODE]
这段代码第一行出的数据是对的,是和第一行的s做的比较,第二行开始就错了,他把第一行和第二行的s一起拿来计算了,第三行把1,2,3行的s一起计算了,以此类体,我现在只想和当行的s比较,这个循环应该怎么改
Private Sub Command15_Click()
Dim str1 As String, c As String
Dim arr() As String
Dim ii As Integer, hh As Integer, y As Integer
Dim a(1 To 12) As String
Dim count(7 To 12) As Long
Dim s As Integer
Dim i As Long, j As Long, k As Long, m As Long
Dim h As String
For ii = 0 To List2.ListIndex
str1 = List2.List(ii)
arr = Split(str1, ",")
For i = 0 To 11
a(i + 1) = arr(i)
Next
For y = 1 To MSFlexGrid1.Rows - 1
s = MSFlexGrid1.TextMatrix(y, 1)
c = s
If Len(c) = 3 And IsNumeric(c) And InStr(1, c, "-") = 0 And InStr(1, c, ".") = 0 And InStr(1, c, "E") = 0 Then
For k = 1 To 3
For j = 7 To 12
If InStr(1, a(j), Mid(c, k, 1)) <> 0 Then count(j) = count(j) + 1
Next j
Next k
For m = 7 To 12
If count(m) <> 0 Then
h = h & count(m) & a(m - 6)
End If
Next
End If
hh = MSFlexGrid1.Col
MSFlexGrid1.TextMatrix(y, hh + ii) = h
Next
Next
End Sub
[/CODE]
这段代码第一行出的数据是对的,是和第一行的s做的比较,第二行开始就错了,他把第一行和第二行的s一起拿来计算了,第三行把1,2,3行的s一起计算了,以此类体,我现在只想和当行的s比较,这个循环应该怎么改
Dim Temp As String
Temp = h
可和他对应的 h=Temp 不知道加到代码那里