EXCEL VBA 如何进行数据的筛选?

有两组数据a5c10b5a10d2b3c7a8以上如何用vba将它变成如下a23c17b8d2我想用循环来做,但是会有重复。... 有两组数据
a 5
c 10
b 5
a 10
d 2
b 3
c 7
a 8
以上如何用vba将它变成如下
a 23
c 17
b 8
d 2
我想用循环来做,但是会有重复。
展开
 我来答
善良的猪头3
2013-11-27 · TA获得超过2932个赞
知道大有可为答主
回答量:2522
采纳率:71%
帮助的人:2773万
展开全部

假设数字在A,B列

with activesheet
     i=0
10   i=i+1
     if .cells(i,1)="" then goto 100
     if .cells(i,1)="a" then a1=a1+.cells(i,2)
     if .cells(i,1)="b" then b1=b1+.cells(i,2)
     if .cells(i,1)="c" then c1=c1+.cells(i,2)
     if .cells(i,1)="d" then d1=d1+.cells(i,2)
     goto 10
100  .cells(1,4)=a1
     .cells(2,4)=b1
     .cells(3,4)=c1
     .cells(4,4)=d1
 end with
追问
这里要说明一下,不止有abcd四个字母,可能还有efghik......就是我们无法知道一共有多少个字母,也无法知道它们分别是什么字母。
追答
dim x(),y()
with activesheet
     i=0:k=1
    ReDim Preserve x(K)
    ReDim Preserve y(K)
10   i=i+1
     if .cells(i,1)="" then goto 100
     for j=1 to K
        if x(j)=.cells(i,1) then   y(j)=y(j)+.cells(i,2):goto 10
     next    
     k=k+1
     ReDim Preserve x(K)
     ReDim Preserve y(K)
     x(K)=.cells(i,1) 
     y(K)=.cells(i,2)
     goto 10
100  for w=1 to k
           .cells(w,4)=x(w)
           .cells(w,5)=y(w) 
     next
 end with
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
香格里拉稻草人
2013-11-27 · TA获得超过385个赞
知道小有建树答主
回答量:494
采纳率:66%
帮助的人:374万
展开全部

1 下载附件,点击按钮

2 代码是用数组与字典编写,数据临时输出在D-E列

3 不明白HI我

更多追问追答
追问
求代码?
追答
请HI我或者私信我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyzxh

2013-11-27 · 知道合伙人软件行家
skyzxh
知道合伙人软件行家
采纳数:2623 获赞数:8340
毕业于中科院,硕士,30年工程从业经验。现任公司技术负责。

向TA提问 私信TA
展开全部
用字典法最快
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式