excel怎么用vba编写一个这样的程序,谢谢

从左边三列数据得到右边红色字体的结果,类似于合并计算,其中人数,水果种类,水果个数都是不定的... 从左边三列数据得到右边红色字体的结果,类似于合并计算,其中人数,水果种类,水果个数都是不定的 展开
 我来答
Ynzsvt
2018-04-11 · TA获得超过6662个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2660万
展开全部
Sub 双字典统计()
 Dim Rng As Range, Dic As Object, i&, Arr, Brr
 Set Dic = CreateObject("Scripting.Dictionary")

 Arr = [A2:C12]
 For i = 1 To UBound(Arr)
  If Not Dic.Exists(Arr(i, 1)) Then
   Set Dic(Arr(i, 1)) = CreateObject("Scripting.Dictionary")
   Dic(Arr(i, 1))(Arr(i, 2)) = Arr(i, 3)
  Else
   Dic(Arr(i, 1))(Arr(i, 2)) = Dic(Arr(i, 1))(Arr(i, 2)) + Arr(i, 3)
  End If
 Next i

 Set Rng = [F1]
 Brr = Dic.Keys
 For i = 0 To UBound(Brr)
  Rng.Offset(0, i * 2) = Brr(i)
  Rng.Offset(1, i * 2).Resize(Dic(Brr(i)).Count, 2) = _
  Application.WorksheetFunction.Transpose(Array(Dic(Brr(i)).Keys, Dic(Brr(i)).Items))
  Set Dic(Brr(i)) = Nothing
 Next i
 Set Dic = Nothing
End Sub
追问
您的回答太棒了,谢谢,统计完的个数能加一个求个吗,谢谢谢谢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式