Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Нужна помощь в заполнении массива (VBA Excel)


Автор: Godmademefunky 14.1.2008, 17:21
Приветствую.

Есть проблема с заполнением массива (VBA). 

Дан список по строкам с повторяющимися текстовыми значениями. Каждому значению может соответствовать различная дата. Каждому текстовому значению также может соответсвовать число. 

Дан 2-й список где по строкам приведены все значения из первого списка но без повторений. Во втором списке также есть все даты без повторений из первого списка, расположенные в заголоках столбцов. 

Нужно создать массив который заполняет получившуюся прямоугольную матрицу (второй список) значениями из столбца "Всего" (первого списка).

Спасибо.

Автор: Akina 14.1.2008, 18:53
Если ты написАл функцию, но она работает неверно - давай код, посмотрим...
А если ты хочешь, чтобы ее написАли за тебя...

Автор: Godmademefunky 14.1.2008, 21:14
Я хочу понять как формировать двухмерный массив в этой задачке.
Вот фаил с моим кодом.  

Можно любой пример а не только этот, мне главное понять как сохранить соответствующие значения в одном массиве ( см. задачу).



Автор: Akina 14.1.2008, 21:32
Цитата(Godmademefunky @  14.1.2008,  22:14 Найти цитируемый пост)
Я хочу понять как формировать двухмерный массив в этой задачке.

А тебе не нужен двумерный массив. Тебе нужна функция, которая примет три range и 2 ячейки, найдет индекс, для которого в первом range есть value первой ячейки, а для второго range - соответственно value второй ячейки, и отдаст соответствующий value по индексу из третьего range.

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

Автор: Godmademefunky 14.1.2008, 22:23
Я не очень понял что за функция?
Ты имеешь ввиду Индекс? Или ?? ))

Если имеется ввиду функция Vba я не очень знаком как их писать... поэтому массив как вариант. 


Сейчас в отчете только 3 даты но на самом деле их на данный момент более 30 (по неделям).  Соответственно идея в том чтобы отчет формировался наиболее быстро т.е. по средствам нажатия кнопки "Сформировать отчет".  В этом собственно сама идея ))

Автор: Akina 14.1.2008, 23:59
Цитата(Godmademefunky @  14.1.2008,  23:23 Найти цитируемый пост)
идея в том чтобы отчет формировался наиболее быстро т.е. по средствам нажатия кнопки "Сформировать отчет".  В этом собственно сама идея ))

Купите себе самоучитель по MS Access - это для него задача, а не для Экселя.

Автор: Godmademefunky 15.1.2008, 11:39
Согласен в Аксес это можнос сдеть в два счета

Спасибо за совет в любом случае.


И все-таки мне это нужно сделать именно в эксель (это лишь часть приложения). Если кто-нибудь поделиться способом заполнения двумерного динамического массива буду признателен. 

Автор: Akina 15.1.2008, 14:46
Цитата(Godmademefunky @  15.1.2008,  12:39 Найти цитируемый пост)
мне это нужно сделать именно в эксель 

Выполнение промежуточных расчетов на выделенном для этого листе - возможно?

Автор: Godmademefunky 15.1.2008, 14:57
Да возможно но не желательно т.к. по моему это еще усложнит код. хотя я может не представлю.я себе как ты это хочешь сделать

Автор: k0c9k 13.2.2008, 18:02
Можно сформировать отчет открыв Access, и перегнав туда все нужные для этого данные. smile 

Автор: temr 17.2.2008, 00:55
Если я правильно понял то в первом столбце содержаться уникальные названия  по которым в дальнейшем и производиться анализ если оно так то 
пример в файле

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)