VBA Excel 2003/2007:声明,填充和传递锯齿形数组

我已经彻底研究过这个话题,还没有find能够完成我所需要的工作的代码。 简而言之,我正在创build一个生产跟踪计划,现在我正在使用的计划的function涉及准确地跟踪5名员工的休假日。 包含5个列表框(每个员工一个)的用户表单用于select每个员工每周起飞的天数。 当我尝试创build包含每个员工rest日的独特dynamic数组时,问题就来了。 我想出了如何创build一个捕获这些信息的数组,但是每次循环迭代时它就是一个被重新分配的数组。 我需要为每个员工设置一个独特的阵容,以便在稍后的代码中根据他可用的工作date来调整每周得分。 下面是我的代码在用户窗体中创build一个创build锯齿arrays:

Public Name_Jagged() As Variant For Each Name In Name_Array Set Unique_Listbox = Controls(Name & "_Vacation") For UnSelected = 0 To Unique_Listbox.ListCount - 1 If Unique_Listbox.Selected(UnSelected) = False Then ReDim Preserve Name_Jagged(0 To UBound(Name_Jagged) + 1) Name_Array(Name) = Name_Jagged() Name_Jagged(UBound(Name_Jagged)) = Unique_Listbox.List(UnSelected) End If For UnSelected_Array_Pos = LBound(Name_Jagged) To UBound(Name_Jagged) MsgBox Name & "_" & Name_Jagged(UnSelected_Array_Pos) Next UnSelected_Array_Pos Next UnSelected Next Name 

编译器不会允许我使用Public Name_Jagged()()As Variant,尽pipe大多数其他论坛都说这是应该写的。 我在网上发现的唯一关于这个锯齿arrays声明问题的其他post没有回答。

我将衷心感谢您的帮助。 我已经能够找出从前面的线索到目前为止的一切,但这一切都没有了。 如果有一个更好的select比锯齿arrays来实现这一点,我耳熟能详。 我在一些论坛上读到了关于使用List的问题,但我现在还不太了解它们或者如何使用它们。 先谢谢您的帮助。

只是一个想法,但为什么有每个员工5静态列表框? 为什么不只是有一个列表框,其中包含雇员的名字和一个包含星期几的列表框。 你突出显示你想要的员工,并select他们已经离职的日子。 点击一个提交button,将雇员姓名加载到一个数组与select的天数? 数组可以像这样构造

NAME | 星期一| 星期二| 星期三| 星期四| 星期五| SATURDAY | 星期日

JIM ….. OFF ………… OFF

ERIC ………………….. OFF …………. OFF

等等。 这样,如果您将来需要添加人员,只需将其添加到列表框中即可。 你会有一个简单的数组来处理?

此外,你还说“稍后将在代码中使用,根据他可用的工作日数来调整每周得分”

一条build议; 您可能需要考虑将其logging到一个简单的mysql / mssql数据库,这为您将来提供了更多的灵活性和控制力。