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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2011, 15:48   #1
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию Вывод целого массива на рабочий лист

Здравствуйте.
Столкнулся с проблемой вывода целого массива на лист. Вот пример небольшого кода:
Код:
Public Function sm(rgn1 As Range, k As Long, r As Long, e As Long) As Double
Dim n As Long, l As Long, j As Long
Dim RR1
RR1 = rgn1.Value
ReDim C(k, k)
ReDim CA(k, k)

For j = 0 To (UBound(RR1) / (k ^ 2)) - 1
For l = 0 To k - 1
For n = 0 To k - 1
C(n, l) = RR1(n + j * k ^ 2 + l * k + 1, 1)
CA(n, l) = CA(n, l) + C(n, l)
Next
Next
Next

sm = CA(r - 1, e - 1)
Erase C
Erase CA
End Function
В конце результатом функции есть одно число из массива СА, заранее заданное в аргументе функции, а мне в общем то надо вывести весь массив СА на рабочий лист, я это делаю перебором r и e, но из-за этого получается что функция пересчитывается k^2 раз, хотя вся информация есть уже послы первого выполнения, вот и хочется сократить время пересчёта.
Ещё былоб не плохо сохранить все массивы С (их там j штук) в отдельном .txt файле.

Заранее всем благодарен.

Последний раз редактировалось drNabla; 13.01.2011 в 16:03.
drNabla вне форума Ответить с цитированием
Старый 13.01.2011, 15:52   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Попробуйте
Код:
[a1].Resize(UBound(CA, 1), UBound(CA, 2)).Value = CA    'выгружаем результат
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.01.2011, 15:57   #3
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Попробуйте
Код:
[a1].Resize(UBound(CA, 1), UBound(CA, 2)).Value = CA    'выгружаем результат

А куда это вставлять надо и как этим пользоваться, не очень понимаю, первый раз вижу эту функцию...
drNabla вне форума Ответить с цитированием
Старый 13.01.2011, 16:06   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Ещё былоб не плохо сохранить все массивы С (их там j штук) в отдельном .txt файле
Противоречит
Цитата:
хотя вся информация есть уже послы первого выполнения, вот и хочется сократить время пересчёта.
Если выводить CA(r - 1, e - 1) в момент его уже расчитанного значения то не получим ,С (их там j штук) в полном объеме
Нада определится либо время,либо запись в тект
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 13.01.2011, 16:10   #5
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

я себе это представлял как СА выводится перед концом функции, и этот массив полностью сосчитан, а сохранение С производится в цикле, перед переход на следующее j... или так нельзя?
drNabla вне форума Ответить с цитированием
Старый 13.01.2011, 16:29   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

чтобы было понимание,выложите файл с матрицей 10Х10.

и образец текстового файла с результатом после выполнения вашей функции,а то мы можем говорить на разных языках

В итоге что есть,что где должно быть
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 13.01.2011, 16:46   #7
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

вот то что получилось
Вложения
Тип файла: rar CA.rar (47.2 Кб, 11 просмотров)
drNabla вне форума Ответить с цитированием
Старый 13.01.2011, 18:50   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Подкорректируете под свои нужды,ТХТ на диск С сохраняется.
Укажете свой путь.Функцию немного переделал
Вложения
Тип файла: rar CA.rar (79.0 Кб, 22 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 14.01.2011, 01:00   #9
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

с трудом, но более менее понял работу всего этого дела... остаются вопросы по некоторым цифрам, а то как только меняю какието значения оно выдаёт ошибку... мне кажется я не очень хороший пример привёл и вы не совсем правильно всё поняли... можно уже в личке поспрашивать?
drNabla вне форума Ответить с цитированием
Старый 14.01.2011, 02:22   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Пишите,можно на мыло.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пустой рабочий лист или нет? Simbad Microsoft Office Excel 2 21.01.2010 06:23
Защищена ли рабочий лист или нет? Simbad Microsoft Office Excel 1 19.01.2010 06:47
Разбить рабочий лист MS Word на 2 страницы Tayfun Общие вопросы Delphi 1 04.01.2010 18:26
При закрытии книги переключится в рабочий лист valerij Microsoft Office Excel 8 03.07.2009 00:38
Как защитить рабочий лист от ввода с клавиатуры, но не от действий макроса ? valerij Microsoft Office Excel 7 28.05.2008 23:59