|
发表于 2011-4-9 23:00
|
显示全部楼层
本楼为最佳答案
- Sub Macro1() 'ZHANGGANG1960
- Dim arr, brr(), d As Object, i&, j&
- Set d = CreateObject("scripting.dictionary") '定义字典对象
- arr = [a1].CurrentRegion '数据区域写入数组
- ReDim brr(1 To UBound(arr), 1 To 256) '重新定义数组brr,使它行数同arr,256列
- For i = 1 To UBound(arr) '逐行
- d(arr(i, 1)) = i 'A列单元格添加到字典键值,行号添加到字典条目,即不重复的A列单元格和其行号关联
- Next
- For i = 1 To UBound(arr) '逐行
- If d.Exists(arr(i, 2)) Then '如果B列单元格字典存在
- For j = 2 To 256
- brr(d(arr(i, 2)), j - 1) = arr(i, j)
- Next
- End If
- Next
- [b1].Resize(UBound(arr), 255) = brr '数组brr覆盖原需要排序区域
- End Sub
复制代码 修改出来的代码是可以用的
不过我自己要再理解理解看。
PS:先睡觉去了。 |
|