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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2015, 20:21   #1
jimmyyong
Пользователь
 
Регистрация: 17.11.2010
Сообщений: 22
По умолчанию Массив в массиве с пользовательским типом данных

Не могу разобраться с причиной ошибки в приведенном ниже коде.
Необходимо добавить в массив несколько массивов с пользовательским типом данных
PHP код:
Type MyT
     PPP 
As Integer
     TTT 
As Integer
End Type


Sub TEST1
()
Dim Mass_1(1 To 20)  As MyT
Dim Mass_2
(1 To 30)  As MyT

Dim Mass_ITOG
(1 To 2)
    
Mass_ITOG(2) = Mass_1
    Mass_ITOG
(1) = Mass_2

Stop
End Sub 
jimmyyong вне форума Ответить с цитированием
Старый 12.02.2015, 02:51   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Увы, не выйдет так сделать, - ограничения языка VBA
Объекты пользовательского типа не получится запихнуть в массивы или коллекции

Как вариант, - создать класс с названием MyT
и в нём определить 2 свойства
Public PPP As Integer
Public TTT As Integer

вот экземпляры класса можно запихивать в массивы и коллекции
(но код будет выглядеть иначе)
EducatedFool вне форума Ответить с цитированием
Старый 12.02.2015, 16:51   #3
jimmyyong
Пользователь
 
Регистрация: 17.11.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Увы, не выйдет так сделать, - ограничения языка VBA
Объекты пользовательского типа не получится запихнуть в массивы или коллекции

Как вариант, - создать класс с названием MyT
и в нём определить 2 свойства
Public PPP As Integer
Public TTT As Integer

вот экземпляры класса можно запихивать в массивы и коллекции
(но код будет выглядеть иначе)
EducatedFool, а в VBA каким то образом реализована возможность определять "ПОДсвойства" свойств класса?

Public PPP As Integer

Public TTT.t1 As Integer
Public TTT.t2 As Integer

Попробовал добавить в коллекцию массив состоящий из переменных пользовательского типа - не добавляет...

Дело в том, что есть необходимость создать "элемент" в VBA, который по результатам обработки множества книг Excel будет аккумулировать данные и иметь следующую структуру:

Книга_1
Раздел_1.1
Подраздел_1.1.1
Элемент_1
...
Элемент_100
Раздел_1.2
...
Раздел_1.3
...
Раздел_1.20

Книга_2
Раздел_2.1
Раздел_2.2
Раздел_2.3
...

Книга_50
jimmyyong вне форума Ответить с цитированием
Старый 12.02.2015, 18:26   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я вот как-то пользовательский тип на практике не использую, проще писать код используя словари или коллекции.
Кажется что и тут подойдёт словарь в словаре - но конечно нужно вникнуть в задачу.
Если дело в обучении - я пас, вообще забыл тонкости этих пользовательских типов...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 12.02.2015, 18:34   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Я тоже думаю, что вариант типа вложенных словарей (или коллекций) вполне подойдёт
(или коллекция массивов, или массив коллекций / словарей)

вариантов много, - чтобы посоветовать что-то конкретное, надо знать, в чем заключается задача, и какой объем данных будет.

Про пользовательские типы советую забыть, - в VBA с ними всё плохо
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами прямого доступа с определенным пользовательским типом данных nik-kang C# (си шарп) 0 06.04.2012 20:50
Многомерный массив с множественным типом данных Jaga_89 Общие вопросы Delphi 1 09.02.2012 21:13
Проблема с типом данных!!!!! Екатерина_21 C++ Builder 1 02.02.2012 02:19
Проблема с типом данных Nicko_mt Помощь студентам 6 17.09.2011 00:42
Проблема с типом данных BMWSauber Общие вопросы .NET 1 12.10.2010 13:42