VBA:搜索整个类的集合以获取值

时间:2014-06-30 22:45:42

标签: vba class collections

我有一组简单的类,我想在所有类中搜索特定的值。

将它放在一个例子中,它看起来像这样:

Collection: Employees
Class: Employee 
Employee.Name
Employee.Address
Employee.Salary

数据位于电子表格中,因此我为每位员工创建了一个类,然后将该类存储到集合中。

所以在某些时候我需要找到薪水最高的员工,所以我需要在所有班级中搜索该值。

有人能说出这是如何在 VBA 中完成的吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

集合可以通过For语句或For Each语句遍历。

尝试(假设Employees集合从0开始):

Dim CtrA as Long, MaxSalary as Currency
MaxSalary = 0
For CtrA = 0 to Employees.Count-1
    If Employees(CtrA).Salary > MaxSalary  Then
        MaxSalary = Employees(CtrA).Salary
    End If
Next

或者:

Dim Emp as Employee, MaxSalary as Currency
MaxSalary = 0
For Each Emp in Employees
    If Emp.Salary > MaxSalary  Then
        MaxSalary = Emp.Salary
    End If
Next

For Each构造可能更可取,因为它使用早期绑定,而For构造可能使用后期绑定,这意味着如果你的类成员错误,早期绑定你会发现编译,而使用后期绑定,只能在运行时找到。