У меня есть модуль класса с именем MyClass
, с открытым целым числом:
Public i as Integer
Когда я пытаюсь использовать эту переменную в цикле For
, например:
Dim MyInstance as MyClass: Set MyInstance = New MyClass
For MyInstance.i = 1 To 10
Debug.Print "Hello"
Next
Я получаю ошибку: Требуется переменная.Не могу присвоить этому выражению
Я просмотрел справочную страницу , но не могу понять, как это применимо к моему делу.Соответствующий фрагмент: «Вы пытались использовать неизменную в качестве счетчика цикла в конструкции For...Next
. Используйте переменную в качестве счетчика».Но i
- это, в конце концов, переменная, а не функция Let Property
или любое другое выражение.
Что не так с кодом?
РЕДАКТИРОВАТЬ: IСледует отметить, что причина, по которой я хочу, чтобы мой итератор был частью класса, заключается в том, что у меня есть несколько экземпляров класса, служащих различным целям в моем проекте, и есть несколько вложенных циклов For
для каждого экземпляра класса.Поэтому стоит, чтобы итераторы принадлежали их соответствующим объектам, скажем:
For Client.i = 1 To Client.Count
For Order.i = 1 To Order.Count
For Item.i = 1 To Item.Count
и т. Д.
Я согласился на следующий обходной путь, но все еще не полностью удовлетворен им:
For ciii = 1 To Client.Count
Client.i = ciii ' Client.i is later used in the code
For oiii = 1 To Order.Count
Order.i = oiii
For iiii = 1 To Item.Count
Item.i = iiii