Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2158|回复: 4

[已解决]如何利用VBA计算A区域所在的行在B区域中出现的相同次数?

[复制链接]
发表于 2015-4-12 16:28 | 显示全部楼层 |阅读模式
本帖最后由 jjxuexizy 于 2015-4-12 18:23 编辑

如何利用VBA计算A区域所在的行在B区域中出现的相同次数.rar (7.67 KB, 下载次数: 14)
发表于 2015-4-12 17:05 | 显示全部楼层
  1. Sub Macro1()
  2. Dim A, B, C, d, i&, j%, p$
  3. Set d = CreateObject("scripting.dictionary")
  4. A = [a3:c8]: B = [h3:k9]: n = UBound(B, 2)
  5. ReDim C(1 To UBound(A), 1 To 2)
  6. For i = 1 To UBound(B)
  7.     p = ""
  8.     For j = 1 To n - 1
  9.         p = p & "," & B(i, j)
  10.     Next
  11.     If Not d.exists(p) Then
  12.         d(p) = B(i, n)
  13.     Else
  14.         d(p) = d(p) & " " & B(i, n)
  15.     End If
  16. Next
  17. For i = 1 To UBound(A)
  18.     p = ""
  19.     For j = 1 To UBound(A, 2)
  20.         p = p & "," & A(i, j)
  21.     Next
  22.     If d.exists(p) Then
  23.         C(i, 1) = UBound(Split(d(p))) + 1
  24.         C(i, 2) = d(p)
  25.     End If
  26. Next
  27. Range("f3").Resize(UBound(C), 2) = C
  28. End Sub
复制代码

评分

参与人数 1 +3 收起 理由
jjxuexizy + 3 谢谢,为了学习麻烦您将语句逐句解释一下。

查看全部评分

回复

使用道具 举报

发表于 2015-4-12 17:07 | 显示全部楼层    本楼为最佳答案   
………………

1.zip

13.8 KB, 下载次数: 11

评分

参与人数 1 +3 收起 理由
jjxuexizy + 3 谢谢,已经完全解决

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-4-12 18:00 | 显示全部楼层
更改成6列就执行不成了如何利用VBA查找A区域所在的行在B区域中对应的识别号2?.zip (13.99 KB, 下载次数: 4)

点评

在论坛上搜一下主题:代码解释器  发表于 2015-4-13 10:06
回复

使用道具 举报

发表于 2015-4-12 20:49 | 显示全部楼层
Sub Macro1()
Dim A, B, C, d, i&, j%, p$
Set d = CreateObject("scripting.dictionary")
A = [a2:f7]: B = [i2:o8]: n = UBound(B, 2)
ReDim C(1 To UBound(A), 1 To 2)
For i = 1 To UBound(B)
    p = ""
    For j = 1 To n - 1
        p = p & "," & B(i, j)
    Next
    If Not d.exists(p) Then
        d(p) = B(i, n)
    Else
        d(p) = d(p) & " " & B(i, n)
    End If
Next
For i = 1 To UBound(A)
    p = ""
    For j = 1 To UBound(A, 2)
        p = p & "," & A(i, j)
    Next
    If d.exists(p) Then
        C(i, 1) = UBound(Split(d(p))) + 1
        C(i, 2) = d(p)
    End If
Next
Range("g2").Resize(UBound(C), 2) = C
End Sub

评分

参与人数 1 +3 收起 理由
jjxuexizy + 3 谢谢,为了学习麻烦您将语句逐句解释一下。

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 05:24 , Processed in 0.142002 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表