作者:绿色风
分类:
时间:2022-08-17
浏览:122
楼主 liuguansky |
Q:如何依B列内容,对ACE内容循环返回? A:用如下代码可以实现:- Sub justtest()
- Dim Arr(1 To 5), C As Byte, ArrR(), T&, i&, ArrS(), M&, N&, K&
- '定义变量
- For C = 1 To 5
- '循环列内容,各列值赋值入数组
- Arr(C) = Cells(1, C).Resize(Cells(1, C).End(4).Row, 1).Value
- Next C
- T = UBound(Arr(1)) + UBound(Arr(3)) + UBound(Arr(5)) + 2
- '每次循环的长度
- ReDim ArrS(1 To T) '定义数组,用于返回每次循环的不变值
- ReDim ArrR(1 To T * UBound(Arr(2)), 1 To 1) '定义数组,用于返回结果值
- For C = 1 To 5 Step 2 '循环定值列
- For i = 1 To UBound(Arr(C))
- M = M + 1
- ArrS(M) = Arr(C)(i, 1) '赋值给循环的数组
- Next i
- M = M + 1 '跳过不变量
- Next C
- For i = 1 To UBound(Arr(2)) * T Step T '对结果数组,按每个循环段进行循环
- N = N + 1
- For M = 1 To T
- ArrR(i + M - 1, 1) = ArrS(M) ''先赋值不变量
- Next M
- ArrR(i + UBound(Arr(1)), 1) = Arr(2)(N, 1) '再赋值B列变值
- If N <= UBound(Arr(4)) Then ArrR(i + UBound(Arr(1)) + UBound(Arr(3)) + 1, 1) = Arr(4)(N, 1)
- '对D列赋值,如果没有相应匹配,则不赋值
- Next i
- Range("h:h").ClearContents
- Range("h1").Resize(UBound(ArrR, 1), 1) = ArrR
- End Sub
|
2楼 JOYARK1958 |
謝謝提供學習下載中 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一