是否可以使用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
输出继电器:
只需使用数据透视表,并在必要时在单击表单时自动刷新数据透视表。