|
请教
请教各位老师们,谢谢大家!
001 Sub 合并汇总()
002 Set myb = CreateObject("scripting.dictionary"): Dim brr(0 To 3)
003 Arr = Range(Cells(1, 1), [a65536].End(xlUp).Offset(, 4))
004 Sheet2.[a1:e65536] = ""
005 For i = 1 To UBound(Arr)
006 If Cells(i, 2) <> "" Then
007 If Not myb.exists(Arr(i, 2)) Then
008 myb(Arr(i, 2)) = Array(Arr(i, 2), Arr(i, 3), Arr(i, 4), Arr(i, 5))
009 Else
010 For k = 2 To 5
011 brr(k - 2) = IIf(Arr(i, k) = "", myb(Arr(i, 2))(k - 2), Arr(i, k))
012 Next
013 myb(Arr(i, 2)) = brr
014 End If
015 End If
016 Next
017 Sheet2.Columns(1).NumberFormatLocal = "@"
018 Sheet2.[a1].Resize(myb.Count, 4) = Application.Transpose(Application.Transpose(myb.items))
019 Set myb = Nothing: Erase Arr: Erase brr
020 End Sub
我的问题是:
1. Add方法,向 Dictionary 对象中添加一个关键字项目对。
object.Add (key, item)
如果 key 已经存在,那么将导致一个错误。程序中008行013行怎样实现的?
2. Items方法,返回一个数组,其中包含了一个 Dictionary 对象中的所有项目。object.Items( )
当项目有多个时,这个数组及维数是怎样的?程序中数组myb.items用了两次转置和不用不是一样吗?
3. Sheet2.Columns(1).NumberFormatLocal = "@"这句的NumberFormatLocal = "@"是什么意思?
[ 本帖最后由 tcl6303 于 2010-10-27 09:34 编辑 ] |
|