|
本帖最后由 mn860429 于 2011-1-21 15:21 编辑
二、代码:
- Sub 保留原数据() ‘by:ldy888
- ‘前期绑定,需先引用c:\windows\system32\scrrun.dll
- Dim d As New Dictionary,t
- For i = 2 To 5
- Set d(Cells(i, 1) & "") = Range(Cells(i, 1), Cells(i, 4))
- Next
- t=d.items
- [A11].Resize(d.Count, 4) = Application.Transpose(Application.Transpose(t))
- End Sub
复制代码
代码中的两次Transpose有什么用呢?两次不是等于没转?{:081:}
还有Set d(Cells(i, 1) & "") = Range(Cells(i, 1), Cells(i, 4))和d(Cells(i, 1) & "") = Range(Cells(i, 1), Cells(i, 4))效果一样吗?{:081:}
帖子地址:
常见字典用法集锦及代码详解
http://www.excelpx.com/forum.php?mod=viewthread&tid=145901&fromuid=280638
1、Set是对象的赋值,字典中实质存储的是Range对象
2、t是一个一维数组,0~3,横向,其中存放Range对象
你可以逐步执行一下transpose看结果 - Sub sss()
- Dim d As New Dictionary, t
- For i = 2 To 5
- Set d(Cells(i, 1) & "") = Range(Cells(i, 1), Cells(i, 4))
- Next
- Stop
- t = d.items
- t = Application.Transpose(t)
- t = Application.Transpose(t)
- [A11].Resize(d.Count, 4) = t
- End Sub
复制代码
|
|