2014-06-30 38 views
-1

我有一個簡單類的集合,我想在所有類中搜索特定的值。VBA:搜索值的整個​​類集合

把它放到一個例子就應該是這樣的:

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

的數據是在電子表格中,所以我創建一個類爲每個員工,然後將類存儲到集合。

因此,在某些時候,我需要找到薪水最高的員工,因此我需要通過所有課程搜索該值。

任何人都可以告訴這是怎麼做的VBA

謝謝!

回答

2

收集可以通過For聲明或For Each聲明來遍歷。

嘗試(假設僱員集合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構建體可使用後期綁定,這意味着如果你的類成員錯了,在早期綁定的時候你會發現在編譯時,而在後期綁定中,你只能在運行時找到它。

+0

有沒有辦法以某種方式實現MaxValue或MinValue方法? – Jadox

+1

@ user3791958,VBA'Collection'本身沒有'MaxValue'或'MinValue'成員。你可以創建一個類,它包含任何你想要的類型的''Collection'',並且實現你需要的任何其他成員。但是,如果你想知道如何做到這一點,那最好是另一個SO問題。 –