嘿,所有人都可以循环使用名称如下的几个数组:
arryMaster = Array("170","180","120","610")
arry170 = Array("170","2214","1121"...)
arry180 = Array("180","3890","0090"...)
arry120 = Array("120","0200","7321"...)
arry610 = Array("610","1890","0213"...)
做这样的事情:
For Each arryMasterLoop In arryMaster
For Each arryNumber In arryMasterLoop
if (strDeptID = arryNumber) then strGroupNum = arryNumber(0)
Next
Next
我目前在上面的代码中遇到的问题是每个阵列都被命名为 arryXXX ,目前它只通过 arrayMasterLoop 循环,只有数字而不是<然后是数字(例如:arry170)。
strDeptID 包含上述示例中的 2214,2212,3890,0090等之一。
如何执行此循环并让它知道查看 arry XXX变量?
答案 0 :(得分:1)
eval功能是您正在寻找的功能。这是你的代码被调整以允许动态循环遍历数组。
for each arryMasterLoop in arryMaster
for each arryNumber in eval("arry" & arryMasterLoop)
' your code here
next
next
答案 1 :(得分:0)
对于这个特定问题,我可能会考虑使用数组。数组名称是否始终采用以下格式:arryXXX?有些数组名称有一个像array011这样的前导零吗?您使用了多少总数组以及它们最初是如何创建的?在您完成解决方案时,只需要考虑几件事情。
现在,您需要创建一个Array来保存所有数组,并将相应的Array插入XXX位置。很容易,对吧?
Dim maxvalue = 9999 'this is your largest array value
Dim lookupArray = Array(maxvalue);
lookupArray(170) = arry170
lookupArray(180) = arry180
lookupArray(2450) = arry2450
lookupArray(1750) = arry1750
创建查找数组后,您可以轻松遍历arryMaster,将值解析为您将在lookupArray中检索相应数组的索引。很简单,对吧?
希望有所帮助!