EXCEL VBA的代码应该怎么写?

B1:E1的数字,对比J列的每行数字,看看出现的数字一致的有多少格;;;比如J1里07,08,09=0,实际上,07,08,09对比B1:E1,有1个08,说明这个J1里... B1:E1的数字,对比J列的每行数字,看看出现的数字一致的有多少格;;;

比如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格,有可能多或少.请老师帮我看一下这个代码应该怎么写啊?
展开
 我来答
阳光上的桥
2021-05-14 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65806
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

调试通过的代码如下:

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

Ynzsvt
2021-01-04 · TA获得超过6662个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2645万
展开全部
逗号都是英文的么?

用代码的自定义函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2021-05-15 · 超过17用户采纳过TA的回答
知道答主
回答量:546
采纳率:11%
帮助的人:27.5万
展开全部
没有看懂规律,哎
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式