打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
二十八讲 VBA字典下

1. 提取唯一值

Sub 提取唯一值()

Dim d As New Dictionary

Dim arr

Dim x As Integer

arr = Range('a2:a12')

For x = 1 To UBound(arr)

d(arr(x, 1)) = '' ‘第二列直接设置为空白就好,不影响

Next x

Range('c2').Resize(d.Count) = Application.Transpose(d.keys)

End Sub

2. 字典与求和

Sub 汇总()

Dim d As New Dictionary

Dim arr, x

arr = Range('d2:e10')

For x = 1 To UBound(arr)

d(arr(x, 1)) = d(arr(x, 1)) arr(x, 2) 'Key对应的item的值在原来的基础上加新的

Next x

Range('f2').Resize(d.Count) = Application.Transpose(d.Keys)

Range('g2').Resize(d.Count) = Application.Transpose(d.items)

End Sub

犯过的错误有:

(1)arr = Range('d2:e10'),这一步自己写代码时候定义为了d2:d10, 错定义为一维数组。

(2)For x = 1 To UBound(arr),这一步错写为for x = 2 to ubound(arr),错误原因在于混淆了概念

(3)最后一步,d.items,大意写为d,items

3. 多表双向查找

Sub 多表()

Dim d As New Dictionary

Dim x, y

Dim arr

For x = 27 To 29

arr = Sheets(x).Range('a2').Resize(Sheets(x).Range('a65536').End(xlUp).row - 1, 2)

For y = 1 To UBound(arr)

d(arr(y, 1)) = arr(y, 2)

d(arr(y, 2)) = arr(y, 1)

Next y

Next x

MsgBox d('C1')

MsgBox d('张飞')

End Sub

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA字典查找、求和、去重
(19)字典Dictionary
VBA数组学习笔记
Excel 数组精华
带您走进VBA数组5
Excel 常见字典用法集锦及代码详解3
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服