EXCEL VBA的代码应该怎么写?
比如J1里07,08,09=0,实际上,07,08,09对比B1:E1,有1个08,说明这个J1里的=0是不一致的,不用计数;;;
接着是J2里的03,06,09,12,15=2,实际上03,06,09,12,15对比B1:E1确实是2个,那么是一致的,计数1个;;;
依次检查J3,J4,J5....,这里的5格中有2格是一致的,那么一共计数2个.就在 J6显示2;;;
J列的5格,不一定是固定的5格,有可能多或少.请老师帮我看一下这个代码应该怎么写啊? 展开
调试通过的代码如下:
Option Explicit
Sub x()
Dim arrB, arrJ, n&, i&, j&, cnt&, x&, t, arr
n = Cells(Rows.Count, "J").End(xlUp).Row 'J列最后一行
arrB = Range("b1:e1")
arrJ = Range("j1:j" & n)
If InStr(arrJ(n, 1), "=") = 0 Then n = n - 1 '如果J列最后一会没有等号就去掉
cnt = 0 '满足条件的行数
For i = 1 To n
arr = Split(arrJ(i, 1), "=") 'arr(0)值表,arr(1)计数
x = 0 '存在值的个数
For Each t In Split(arr(0), ",")
For j = 1 To UBound(arrB, 2)
If arrB(1, j) - t = 0 Then x = x + 1
Next j
Next t
If arr(1) - x = 0 Then cnt = cnt + 1
Next i
Cells(n + 1, "J") = cnt
End Sub