作者:绿色风
分类:
时间:2022-08-17
浏览:111
楼主 wise |
Q:如何使用数组及字典查询另外一个表对于的列放在本表对应列中? 即根据本表的第1\2列把"1号工作量"表的工作量数据放入本表D列的相应位置中。 A:ALT+F11→打开VBE窗口→插入模块,在模块输入以下代码:
- Sub test()
- Dim i&, j&, Myr1&, Arr1, Myr2&, Arr2
- Dim d, k, t, x
- Set d = CreateObject("Scripting.Dictionary")
- Application.ScreenUpdating = False
- Myr1 = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
- Arr1 = Sheet1.Range("A2:D" & Myr1)
- Myr2 = Sheet2.Cells(Rows.Count, 1).End(xlUp).Row
- Arr2 = Sheet2.Range("A2:D" & Myr2)
- For i = 1 To UBound(Arr1)
- x = Arr1(i, 1) & "," & Arr1(i, 2)
- '把新组成的值赋予给x
- d(x) = Arr1(i, 3)
- '往字典添加x值,其item值为工作量
- Next i
- k = d.keys
- '把keys值赋予给k
- t = d.items
- '把items值赋予给t
- For i = 1 To UBound(Arr2)
- '循环数组Arr2
- x = Arr2(i, 1) & "," & Arr2(i, 2)
- For j = 0 To UBound(k)
- '循环k
- If x = k(j) Then Arr2(i, 4) = t(j): Exit For
- '如果x值等于k数组中的值,则把相对应的工作量赋予给数组的第四列,并停止循环
- Next j
- Next
- Sheet2.Range("D2").Resize(UBound(Arr2), 1) = Application.Index(Arr2, 0, 4)
- End Sub
字典+数组查询.rar |
2楼 MMonica605 |
如果不懂代码肿么办捏? |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一