Я хотел бы знать, есть ли способ узнать, можно ли выполнить итерацию параметра, используя For Each
l oop перед его использованием.
Метод AddRange
Этот метод может принимать различные типы данных. В идеале пользователь должен передать контейнер, содержащий 0 или более элементов.
' Class name - Employees
Private pItems As New Collection
Public Sub AddRange(ByVal Items As Variant)
' Here should be logic of detecting if Items can be iterated over.
' If Items is not a container, throw an error.
' Otherwise, proceed with adding items.
Dim Item As Variant
For Each Item In Items
pItems.Add Item
Next Item
End Sub
Код клиента
Public Sub Start()
Dim Emps As New Employees
Dim Department As New Collection 'of Employees
Emps.AddRange Department
Dim AnotherDepartment(0) As Variant 'of Employees
Emps.AddRange AnotherDepartment
Dim NewJoiners As New Employees
Emps.AddRange NewJoiners
' This should not work.
Dim EmployeeName As String
Emps.AddRange EmployeeName
End Sub