Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2016, 21:04   #1
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию VBA Collection

Вопрос по Collection:
Код:
Dim aList As Collection
Set aList = New Collection
...
aList.Add(n)
...
aList(1)=""
посему не происходит присвоение значения элементу? Как задать ему значение, не удаляя элемент?
Replicant вне форума Ответить с цитированием
Старый 04.11.2016, 21:47   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от Replicant Посмотреть сообщение
Как задать ему значение, не удаляя элемент?
Никак. Коллекция этого не позволяет, в отличие от словаря (поищите по scripting.dictionary).
Хотя есть обходной маневр: класть в коллекцию ссылку на экземпляр модуля класса, в котором хранить и менять значения.
Создайте модуль класса с именем по умолчанию (Class1) и кодом из одной строки
Код:
Public v
, и попробуйте такой код:
Код:
Sub test()
Dim aList As Collection
  Set aList = New Collection
  aList.Add New Class1
  aList(1).v = "one"
  Debug.Print aList(1).v
  aList(1).v = "two"
  Debug.Print aList(1).v
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 04.11.2016, 23:02   #3
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Какой неудобный язык, сделал через динамический массив, так проще оказалось.
Replicant вне форума Ответить с цитированием
Старый 06.11.2016, 12:58   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Скорость работы с динамическим массивом устраивает? Тогда хорошо...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA и Oracle: stored procedure из VBA и сохранение текста в переменной Lionne Microsoft Office Excel 1 15.04.2013 19:51
Abobe master collection cs5 ZvEr_HaCkEr Софт 0 27.07.2010 05:36