最近需要处理一些树形结构的数据,在VBA中一直没有太好的办法。用自定义数据类型,没法转换成Variant数据类型传递,而且很不好进行扩展。
使用字典、数组用起来也很麻烦。
最后我用字典,派生出来一个【树形字典TreeDic】,专门处理这种树形数据结构。
特点:
1、来自字典,具备无限的扩展性。
2、将Dictionary.Item,划分成3类:树枝 Branch(TreeDic)、果实Object(对象)、树叶Value(值),分别存放3种数据,数量无限制。
3、通过树枝 Branch进行结构扩展,果实Object 和 树叶Value来存放该节点的数据。
在处理例如:行政区划,多级筛选的数据,非常好用!
演示代码:
Sub cs11()
Dim TD As New
TreeDic
TD.Value("总人口") =
335
'--
Dim whq As TreeDic:
Set whq = TD("中国")("四川")("成都")("武侯区")
whq.Value("面积") =
76.56
whq.Value("面积单位") =
"平方公里"
Debug.Print
whq.Value("面积") & TD("中国")("四川")("成都")("武侯区").Value("面积单位")
'--
Dim BZS As TreeDic:
Set BZS = TD("中国")("四川")("巴中")
BZS.Value("电话区号") =
"0827"
Debug.Print
BZS.Value("电话区号")
'--
Dim JB As TreeDic:
Set JB = BZS("江北区")
JB.Value("邮政编码") =
636099
Debug.Print TD("中国")("四川")("巴中")("江北区").Value("邮政编码")
'--
TD("中国")("四川").Value("人口")
= 123456789
Debug.Print TD("中国")("四川").Value("人口")
End Sub
树形分类统计2.xls
我在另外的网站发了教程,可以看看!
http://club.excelhome.net/thread-1582854-1-1.html