Excel精英培训网

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

[已解决]VBA问题

[复制链接]
发表于 2015-12-26 15:58 | 显示全部楼层 |阅读模式
本帖最后由 SHENQIAN 于 2015-12-26 20:02 编辑

Sub 多列汇总()
Dim 棋盘(1 To 1000, 1 To 4)
Dim x
Dim arr, y As Integer, sr As String, k As Integer
Dim d As New Dictionary
arr = Range("a2:d" & Range("a65536").End(xlUp).Row)
For y = 1 To UBound(arr)
sr = arr(y, 1) & "-" & arr(y, 2)
If d.exists(sr) Then
x = d(sr)
棋盘(x, 3) = 棋盘(x, 3) + arr(y, 3)
棋盘(x, 4) = 棋盘(x, 4) + arr(y, 4)
Else
k = k + 1
d(sr) = k
棋盘(k, 1) = arr(y, 1)
棋盘(k, 2) = arr(y, 2)
棋盘(k, 3) = arr(y, 3)
棋盘(k, 4) = arr(y, 4)
End If
Next y
Range("g2").Resize(k, 4) = 棋盘
End Sub
产品名称型号数量金额
Aa1
11
2
Ba2
2
3
Ca2
3
45
Aa1
78
5
Ec1
5
16
Yb1
12
7
Jc1
10
8
Bc2
8
9
Eb2
9
10
La1
10
20
Qb2
110
12
Cc2
12
22
Ra1
2
14
Tc1
14
15
Yb1
25
16
Lc1
5
10
Oc2
17
8
Qb2
18
5
Ta1
12
2
我这个有什么问题,为什么声明的字典好像没有用?


最佳答案
2015-12-26 16:13
本帖最后由 qh8600 于 2015-12-26 16:14 编辑
SHENQIAN 发表于 2015-12-26 16:11
怎么引用呢?
我这个是用别人的,那为什么他的可以用呀?

前期绑定,在工具中要勾选字典对象的,一般建议使用后期绑定,这样换个电脑也没事,不然,换个电脑又要勾选了

Dim d As New Dictionary
把这个改成 dim d as Object
然后加上下面这句,这是字典后期绑定
Set d = CreateObject("Scripting.Dictionary")
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-12-26 16:08 | 显示全部楼层
本帖最后由 qh8600 于 2015-12-26 16:09 编辑

没有引用
一般字典,建议用后期绑定
Set d = CreateObject("Scripting.Dictionary")
回复

使用道具 举报

 楼主| 发表于 2015-12-26 16:11 | 显示全部楼层
qh8600 发表于 2015-12-26 16:08
没有引用
一般字典,建议用后期绑定
Set d = CreateObject("Scripting.Dictionary")

怎么引用呢?
我这个是用别人的,那为什么他的可以用呀?


回复

使用道具 举报

 楼主| 发表于 2015-12-26 16:12 | 显示全部楼层
qh8600 发表于 2015-12-26 16:08
没有引用
一般字典,建议用后期绑定
Set d = CreateObject("Scripting.Dictionary")

好的,谢谢.我看看


回复

使用道具 举报

发表于 2015-12-26 16:13 | 显示全部楼层    本楼为最佳答案   
本帖最后由 qh8600 于 2015-12-26 16:14 编辑
SHENQIAN 发表于 2015-12-26 16:11
怎么引用呢?
我这个是用别人的,那为什么他的可以用呀?

前期绑定,在工具中要勾选字典对象的,一般建议使用后期绑定,这样换个电脑也没事,不然,换个电脑又要勾选了

Dim d As New Dictionary
把这个改成 dim d as Object
然后加上下面这句,这是字典后期绑定
Set d = CreateObject("Scripting.Dictionary")
回复

使用道具 举报

 楼主| 发表于 2015-12-26 16:30 | 显示全部楼层
qh8600 发表于 2015-12-26 16:13
前期绑定,在工具中要勾选字典对象的,一般建议使用后期绑定,这样换个电脑也没事,不然,换个电脑又要勾 ...

运行是可以了,那为什么运行之后不是还会出现两个一样的产品名称呢,不是不会出现一样的产品名称吗?

点评

传附件看看  发表于 2015-12-26 16:35
回复

使用道具 举报

 楼主| 发表于 2015-12-26 17:04 | 显示全部楼层
SHENQIAN 发表于 2015-12-26 16:30
运行是可以了,那为什么运行之后不是还会出现两个一样的产品名称呢,不是不会出现一样的产品名称吗?

上传不了,是怎么一回事?



回复

使用道具 举报

 楼主| 发表于 2015-12-26 17:04 | 显示全部楼层
qh8600 发表于 2015-12-26 16:13
前期绑定,在工具中要勾选字典对象的,一般建议使用后期绑定,这样换个电脑也没事,不然,换个电脑又要勾 ...

谢谢你,我又学了一点

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 08:43 , Processed in 0.354464 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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