Страницы: 1
RSS
Номер объекта в коллекции
 
Уважаемые специалисты.
Для объектов прописан класс со свойствами и методами. В макросе создается коллекция этих объектов с уникальными именами(ключами).
Можно ли получить номер объекта в коллекции по имени(ключу)?
Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.
 
Вы бы хоть указали как эту коллекцию заполняете. А то может это и не коллекция вовсе. У коллекции есть метод Item, для которого можно указать как раз позицию. Чем не устраивает?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Код
Dim allAir as Collection    
Dim iVS As Air

      Set iVS = New Air ' объявляем новый объект
      iVS.AirType = lstAir.Cells(j, 1).Text
   ' тут заполняем свойства
      iVS.Eng2SNE = lstAir.Cells(j, 24).Value
      
       allAir.Add iVS, iVS.NumBort ' добавляем в коллекцию
 

Как то так, в урезанном варианте
Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.
 
Повторю вопрос: чем не устраивает Item?
Код
Dim allAir as New Collection ' - так будет правильнее.

Код
MsgBox allAir.Item(1) ' - первый элемент коллекции.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Я получаю, нужный объект по ключу и для организации перемещения (по типу перемещения в базе данных) по объектам нужен номер. Мне наоборот нужно, объект есть, а нужен номер. Например, я по имени получаю объект, а потом мне надо переместится на следующий или предыдущий. Для этого и нужен номер.
Изменено: Joiner - 26.11.2014 13:05:57
Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.
 
Можно, конечно, с помощью For...  Next пробежать по коллекции, сравнивая имя, и определить номер, но может есть вариант по быстрее.
Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.
 
Цитата
Joiner пишет: мне надо переместится на следующий или предыдущий
для этого есть стандартная структура - двунаправленный связанный список.
для VBA - либо поискать готовую реализацию такого класса (я навскидку не скажу), либо самому написать.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Наверх