fpbl.net
当前位置:首页 >> vBA字典求和 >>

vBA字典求和

Sub ac() Dim dic, arr, i As Long Set dic = CreateObject("scripting.dictionary") arr = Cells(1, 1).CurrentRegion For i = 2 To UBound(arr) dic(arr(i, 1)) = dic(arr(i, 1)) + arr(i, 2) + arr(i, 3) + arr(i, 4) Next Cells(2, 5).Resize(dic.Count, 2) _= WorksheetFunction.Transpose(Array(dic.keys, dic.items)) End Sub

sub ac()dim dic, arr, i as longset dic = createobject("scripting.dictionary")arr = cells(1, 1).currentregionfor i = 2 to ubound(arr)dic(arr(i, 1)) = dic(arr(i, 1)) + arr(i, 2) + arr(i, 3) + arr(i, 4)nextcells(2, 5).resize(dic.count, 2) _= worksheetfunction.transpose(array(dic.keys, dic.items))end sub

Sub s() arr = [a1].CurrentRegion Set d = CreateObject("scripting.dictionary") k = 1 For i = 2 To UBound(arr) t = arr(i, 1) & arr(i, 2) If Not d.exists(t) Then k = k + 1 d(t) = k If k <> i Then arr(k, 1) = arr(i, 1) arr(k, 2) = arr(i, 2) arr(k, 3) = arr(i, 3) End If Else

不用字典用数组是一样的啊.只是每次是用数组和日期来匹配,然后n=n+1累计这样来计数,同样的,求和就是匹配到时就s=s+金额这样来求和可以了.

这个明显用VBA中的字典来完成是最方便不过的了例,你的数据在sheet1表中,第一行为标题行,第二行开始是数据,用数组+字典法完成代码如下:还是给你整个附件吧,你点按钮即得.

vba字典本身就能实现查询功能,类似vlookup函数.但是没有sumif的求和功能.要求和,通过循环语句累加就可以实现了.百度文库有vba字典相关资料:http://wenku.baidu.com/link?url=S0JsUpk7WN_rcqVIXTyH6X1np9QJG1PltuweBk1PAtkFjBXKKJfjKSUY-z8Fk78uEH5E6r0VWnHjhOn61llK6Csr3jFr8B275c-iKbnuhVS

有一个函数是专门对付你这样的数据的=sumproduct((部门列=部门)*(产品列=产品)*数量列) 如果用VBA,就用字典,一步到位提取每个部门每个产品的数量统计

兄弟,这个用字典是非常好解决的呀如你的数据在a、b列,汇总到d、e列,d列为不重复的名称,e列为对应汇总数量.数据都从第二行开始写入(第一行为标题).在当前表中运行以下宏即得sub aa() dim d as object, x&, arr set d = createobject

设置三个字典,分别求B、C、D列之和,框架这样:Dim a,sb,sc,sd Dim arr, i Set sb=CreateObject("Scripting.Dictionay") Set sc=CreateObject("Scripting.Dictionay") Set sd=CreateObject("Scripting.Dictionay")'求和 arr=ActiveSheet.

可以用vba的字典法完成:Sub test()Set d= CreateObject("scripting.dictionary")r=Cells(Rows.count,1).end(3).rowarr=Range("A1:B" & r)Range("A1:B" & r).ClearContentFor i=1 to Ubound(arr) d(arr(i,1))=d(arr(i,1))+arr(i,2)Next y=d.keyst=d.itemsFor i =0 to ubound(y) Cells(i +1,1)=y(i) Cells(i +1,2)=t(i)Next End Sub

网站首页 | 网站地图
All rights reserved Powered by www.fpbl.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com