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

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

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

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

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

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

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

Public Function proba(rgn1 As Range, M As Double) As Double
Dim n As Long, s As Double, j As Long, i As Long
Dim RR1
RR1 = rgn1.Value
Dim A()

For j = 0 To M - 1
For n = 1 To UBound(RR1) / M
A(j) = A(j) + (1 / M) * ((RR1(n + j * M, 1) - 2) ^ 2)
Next
Next

proba = UBound(A)
End Function


подскажите что не так...
Заранее всем спасибо.
drNabla вне форума Ответить с цитированием
Старый 03.12.2010, 00:46   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от drNabla Посмотреть сообщение
Здравствуйте.
Хотел внутри макроса задать массив, но не тут то было... привиду пример неработающего кода, там впринципе должно быть понятно чего мне хочется.... как то вроде всё как в учебнике с объявлением массива, но там явно что-то не то...

Public Function proba(rgn1 As Range, M As Double) As Double
Dim n As Long, s As Double, j As Long, i As Long
Dim RR1
RR1 = rgn1.Value
ReDim A(M - 1)

For j = 0 To M - 1
For n = 1 To UBound(RR1) / M
A(j) = A(j) + (1 / M) * ((RR1(n + j * M, 1) - 2) ^ 2)
Next
Next

proba = UBound(A)
End Function


подскажите что не так...
Заранее всем спасибо.
Такого в учебнике быть не может

То что выделил синим-не понял смысла
Вот .что вы хотите получить
Код:
Public Function proba(rgn1 As Range, M As Double) As Double
proba = M - 1
End Function
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 03.12.2010 в 00:51.
doober вне форума Ответить с цитированием
Старый 03.12.2010, 11:08   #3
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

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

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

А чего ей работать,если при n>2
n + j * M выходит за размерность массива
сравните при n =2,результат одинаков,как и писал выше
Код:
Public Function proba(rgn1 As Range, M As Double) As Double
Dim n As Long, s As Double, j As Long, i As Long
Dim RR1
RR1 = rgn1.Value
ReDim A(M - 1)

For j = 0 To M - 1
For n = 1 To UBound(RR1) / M

ttr = n + j * M

A(j) = A(j) + (1 / M) * ((RR1(n + j * M, 1) - 2) ^ 2)
Next
Next

proba = UBound(A)
End Function
Public Function proba1(rgn1 As Range, M As Double) As Double
proba1 = M - 1
End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 04.12.2010, 15:51   #5
drNabla
Пользователь
 
Регистрация: 18.05.2010
Сообщений: 87
По умолчанию

да это поспешил и перепутал пределы цикла, надо их поментяь у j и n и тогда всё корректно будет, лично моя ошибка.
drNabla вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание массива из файла EvilHero Общие вопросы C/C++ 3 21.11.2010 22:00
Создание массива указателей Fataller Помощь студентам 4 14.09.2009 09:55
создание массива lg12 Помощь студентам 13 23.08.2009 15:13
Динамическое создание массива Juggernaut Общие вопросы Delphi 3 20.05.2009 15:13
Создание массива компонентов artemavd Общие вопросы Delphi 8 30.03.2009 15:43