|
本帖最后由 ck03w11 于 2022-5-11 12:07 编辑
身份证在 B 列,年级在 F 列,要求是按身份证号统计出六年级省外学生数和省内县外学生数,我写了两段代码,为什么“ss1”代码行,“ss2”码不行,也没提示出错只是统计为0,请问老师这是什么原因?第二段代码应怎样改才能一次读取?谢谢
Sub ss1()
Dim i1, j1, k1 As Integer, arr()
j1 = Sheet1.Range("b65536").End(xlUp).Row
arr = Sheet1.Range("b3:w" & j1)
For i1 = 2 To UBound(arr)
If Mid(arr(i1, 1), 1, 6) <> "330523" And Mid(arr(i1, 1), 1, 2) = "33" And arr(i1, 5) = "六年级" Then
k1 = k1 + 1
End If
Next
Sheet2.Range("i18") = k1
Dim i, j, k As Integer, arr1()
j = Sheet1.Range("b65536").End(xlUp).Row
arr1 = Sheet1.Range("b3:w" & j)
For i = 2 To UBound(arr1)
If Mid(arr1(i, 1), 1, 2) <> "33" And arr1(i, 5) = "六年级" Then
k = k + 1
End If
Next
Sheet2.Range("i17") = k
End Sub
Sub ss2()
Dim i, j, k, k1 As Integer, arr()
j = Sheet1.Range("b65536").End(xlUp).Row
arr = Sheet1.Range("b2:w" & j)
For i = 2 To UBound(arr)
If Mid(arr(i, 1), 1, 2) <> "33" And arr(i, 5) = "六年级" Then
k = k + 1
If Mid(arr(i, 1), 1, 2) = "33" And arr(i, 5) = "六年级" And Mid(arr(i, 1), 1, 6) <> "330523" Then
k1 = k1 + 1
End If
End If
Next
Sheet2.Range("i17") = k
Sheet2.Range("i18") = k1
End Sub
帮你修改一下
Sub ss2()
Dim I, J, k, k1 As Integer, Arr()
J = Sheet1.Range("B65536").End(xlUp).Row
Arr = Sheet1.Range("B2:W" & J)
For I = 2 To UBound(Arr)
If Arr(I, 5) = "六年级" Then
If Mid(Arr(I, 1), 1, 2) <> "33" Then k = k + 1
If Mid(Arr(I, 1), 1, 2) = "33" And Mid(Arr(I, 1), 1, 6) <> "330523" Then k1 = k1 + 1
End If
Next
Sheet2.Range("I17") = k
Sheet2.Range("I18") = k1
End Sub
|
|