Excel精英培训网

 找回密码
 注册
楼主: wcymiss

[习题] 【字典与数组二期1班】第一讲作业工资分类(必做)【已开贴】

  [复制链接]
发表于 2011-12-22 16:27 | 显示全部楼层
rxj_0414 发表于 2011-12-22 15:58
因为是第三行开始赋值,所以实际在工作表中的行数比数组的行数要多2行。
不如range("D3").resize(ubound ...

谢谢回复              
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2011-12-22 19:42 | 显示全部楼层
Dim arr, arr1, arr2, arr3, k1, m1, k2, m2, k3, m3
Dim d1 As New Dictionary
Dim d2 As New Dictionary
Dim d3 As New Dictionary
With Sheet1
arr = .Range("a1:b" & .Range("a" & .Rows.Count).End(xlUp).Row)
For i = 1 To UBound(arr)
    If arr(i, 2) >= 1000 And arr(i, 2) < 2000 Then
        d1(arr(i, 1)) = arr(i, 2)
    End If
    If arr(i, 2) >= 2000 And arr(i, 2) < 3000 Then
        d2(arr(i, 1)) = arr(i, 2)
    End If
    If arr(i, 2) >= 3000 Then
        d3(arr(i, 1)) = arr(i, 2)
    End If
Next i
k1 = d1.Keys
m1 = d1.Items
k2 = d2.Keys
m2 = d2.Items
k3 = d3.Keys
m3 = d3.Items
.Range("d3").Resize(d1.Count, 1) = Application.WorksheetFunction.Transpose(k1)
.Range("e3").Resize(d1.Count, 1) = Application.WorksheetFunction.Transpose(m1)
.Range("f3").Resize(d2.Count, 1) = Application.WorksheetFunction.Transpose(k2)
.Range("g3").Resize(d2.Count, 1) = Application.WorksheetFunction.Transpose(m2)
.Range("h3").Resize(d3.Count, 1) = Application.WorksheetFunction.Transpose(k3)
.Range("i3").Resize(d3.Count, 1) = Application.WorksheetFunction.Transpose(m3)
End With
回复

使用道具 举报

发表于 2015-5-12 18:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 16:46 , Processed in 0.544334 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表