是否可以使用VBA组合数组中的值?

我是新来的VBA,我卡住了..我有一个表与工人和他们一直在工作的时间量。 我想插入所有的工作人员到他们已经工作的总时间,然后打印出他们到另一个工作表。

表的例子:

问题是,我不知道是否有可能将这些值一起插入到一个数组中..现在我已经硬编码名称到我的代码,并使用If语句来添加小时正确的名称,但会如果我添加更多的工作人员到表中(因为那么我需要将这些名称也添加到代码中)是一个问题。 我不希望代码在运行之前知道名称或者有多less工作人员。

我希望打印输出如下所示:

Steve | 13 Emma | 2 Andy | 3 Jeff | 12 

感谢任何帮助!

使用这个或这样的东西:

 Sub test() Dim Dic As Object, oCell As Range, i&, y%, key As Variant Set Dic = CreateObject("Scripting.Dictionary") y = 1: i = Cells(Rows.Count, "A").End(xlUp).Row For Each oCell In Range("A2:A" & i) If Not Dic.exists(oCell.Value) Then Dic.Add oCell.Value, WorksheetFunction.SumIf(Range("A2:A" & i), oCell.Value, Range("B2:B" & i)) End If Next For Each key In Dic Debug.Print key, Dic(key) Next End Sub 

这里的截图

在这里输入图像说明

非常简单的方法:

 Function GetTable(r As Range) As Variant GetTable = r.Value End Function Sub main() Dim Table As Variant Table = GetTable(ActiveSheet.Range("A2:B6")) 'Supply the range of your workers. For i = 1 To UBound(Table, 1) Sum = Sum + Table(i, 2) Next MsgBox (Sum) End Sub 

输出继电器: 在这里输入图像说明

只需使用数据透视表,并在必要时在单击表单时自动刷新数据透视表。