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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2013, 13:36   #11
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

То, что каждый месяц - думаю не придаёт 4-е измерение. Так можно до 8-ми измерений дойти - каждую неделю, день недели, час
Это всего лишь ещё один параметр - дата сделки например.
Мои 3 измерения в словарях - это например так - есть список отделов, в них список сотрудников, у каждого список обязанностей.
Но это без проблем расписывается в простую двумерную таблицу - просто в словарях словарей к любой записи мнгновенный доступ, без доп. перебора/фильтрации (конечно где-то в глубине это есть, но очень глубоко ).
Например, сразу видим - есть у Иванова из транспортного обязанность мыть машину или нет
Это я к тому, что не верится, что не хватит 2-х измерений. Или что нельзя всё свести к 2м.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 15.02.2013, 10:52   #12
parshin
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 20
По умолчанию

Hugo121, я понимаю о чем Вы говорите...
Согласен, что если я введу 3 дополнительные колонки: месяц, артикул (поставщик), клиент, а в остальных столбцах у меня будет информация о реализации: типа отгружено в ц. себестоимости, отгружено в отпускных ценах... и т.д. то по сути, я буду иметь ту же информацию в 2-х мерной таблице базы данных, что и в своем 4-х мерном DIM-е (месяц, артикул/поставщик, клиент, статьи)...
(у меня существует однозначная связь между артикулом и поставщиком, по сути "поставщик" - это свойство артикула).
Проблема в другом, в этом случае алгоритмы арифметических операций с ячейками этой 2-х мерной таблицы будут более сложными, чем арифметические операции в 4-х мерном массиве. Понятно, что и более сложные арифметические алгоритмы можно реализовать... видимо так и придется делать.
Сможете что-то сказать по поводу создания пользовательского формата числа в VBA: меньшего чем с одинарной точностью (FFFF FFFF), но большего чем целое (FFFF: от -32000 до 32000)?

Последний раз редактировалось parshin; 15.02.2013 в 10:57.
parshin вне форума Ответить с цитированием
Старый 15.02.2013, 11:06   #13
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Нет, про формат не знаю.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 12.03.2014, 13:42   #14
parshin
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 20
По умолчанию

Есть двухмерный массив Mas(Rw,8), можно ли его внести в лист по блочно типа Range, например Mas(Rw,1) в колонку 1, а с индексами 2...8 начиная с колонки 3. По ячейкам в цикле получается слишком долго.
parshin вне форума Ответить с цитированием
Старый 12.03.2014, 13:53   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Переложите в другой массив, его выгружайте одним действием.
Или изначально создавайте несколько массивов.
Или вникайте в copymemory
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 12.03.2014, 14:02   #16
parshin
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 20
По умолчанию

То есть создать еще один одномерный массив mas1(Rw) и действовать через него. Если я правильно Вас понял.
parshin вне форума Ответить с цитированием
Старый 12.03.2014, 14:08   #17
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Не одномерный, а двумерный - строка, столбец.
В цикле или с copymemory переложить данные, выгрузить. Если я правильно понял что вообще Вам нужно сделать
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 12.03.2014, 14:25   #18
parshin
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 20
По умолчанию

Код:
  For i = 1 To Rw1
    Worksheets(Lst2).Cells(i + 1, 1) = Mas1(i, 1)
    For j = 3 To 9
      Worksheets(Lst2).Cells(i + 1, j) = Mas1(i, j - 1)
    Next j
  Next i
Пока это существует в таком виде, желательно, если получится
Код:
Worksheets(Lst2).Range("A2:A" & Rw1 + 1) = .....
Worksheets(Lst2).Range("C2:I" & Rw1 + 1) = .....
Rw1 может быть любым пока 300 с лишним, но может быть и больше.

Последний раз редактировалось parshin; 12.03.2014 в 14:31.
parshin вне форума Ответить с цитированием
Старый 12.03.2014, 14:31   #19
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Вот такими же циклами перекладываете данные из массива в массив (созданный под размер, или даже в том же массиве можно передвинуть, чтоб память сэкономить).
Т.е. сперва выгрузили один первый столбец, затем передвинули данные, выгрузили снова правее.
Некогда код писать/проверять сейчас без файла...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 12.03.2014, 14:36   #20
parshin
Пользователь
 
Регистрация: 13.03.2012
Сообщений: 20
По умолчанию

Большое спасибо
parshin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с массивами lindstorm Помощь студентам 0 05.12.2011 18:25
Работа с массивами Jeffrey_4 Помощь студентам 2 30.09.2011 15:41
Работа с массивами pashqa Помощь студентам 2 27.05.2011 15:23
Работа с массивами(Си++) GNick Помощь студентам 2 12.01.2010 00:27
Работа с массивами Stelix Паскаль, Turbo Pascal, PascalABC.NET 1 20.06.2008 11:37