|
鲜花店练手
- '' 过程开始 X改为你想要的名字
- Public Sub X()
- '' 代码从这里开始写
- '' 声明名为dic的变量
- Dim dic As Object
- '' 创建一个字典dic
- Set dic = CreateObject("Scripting.Dictionary")
- '' 声明工作簿变量wb和工作表变量sht
- Dim wb As Workbook, sht As Worksheet
- '' 设置wb为当前工作簿
- Set wb = Application.ThisWorkbook
- '' 设置sht为指定名称的工作表,引号内填写工作表名称
- Set sht = wb.Worksheets(1)
- '' 使用With语句,方便对工作表Sht进行多次操作
- With sht
- '.Usedrange.Offset(1).clear
- '' 获取列A中最大数据行的行号
- eRow = .Cells(.Rows.Count, 1).End(xlUp).Row
- '' 设置范围从A2开始到Z列的eRow行结束
- Set Rng = .Range("A3:Z" & eRow)
- '' 将范围Rng的值赋给数组Arr
- arr = Rng.Value
- '' 变量 i 从数组Arr最小索引开始,遍历至其最大索引
- For i = LBound(arr) To UBound(arr)
- Key = CStr(arr(i, 4))
- '' 若字典dic中不存在键key 则执行
- If Not dic.Exists(Key) Then
- '' 创建一个数组Ar,只有一个元素1
- '' 若字典dic中不存在键key 则执行
- Ar = Array(Key, 1, arr(i, 7))
- '' 把键值对 key-Ar 存入数组,key与Ar是一 一对应关系
- dic(Key) = Ar
- Else
- '' 若字典dic中存在键key 则执行
- '' 取出字典中key对应的数组,赋值给Ar
- Ar = dic(Key)
- '' 对取出的数组Ar执行一些操作
- Ar(1) = Ar(1) + 1
- Ar(2) = Ar(2) + arr(i, 7)
- '' 再次把键值对 key-Ar 存入数组,key与Ar是一 一对应关系
- dic(Key) = Ar
- End If
- Next i
- ' 设置范围为A2单元格
- Set Rng = .Range("j3")
- ' 调整范围Rng的大小,行数为字典键值对数量dic.Count,列数为2
- Set Rng = Rng.Resize(dic.Count, 3)
- ' 调整范围Rng的大小,行数为字典键值对数量dic.Count,列数为值数组的元素数量
- Rng.Value = Application.Rept(dic.items, 1)
- End With
- End Sub
- '' 过程结束
复制代码 |
评分
-
1
查看全部评分
-
|