Страница: 1 |
Страница: 1 |
Вопрос: Массивы vs подпрограммы
Добавлено: 20.08.08 14:40
Автор вопроса: imnotsogood
Доброго времени суток!
Мне надо каким-то образом в ВБА передавать из подпрограммы в подпрограмму (и в/из Sub и в Function) 3-4 одномерных массива. Как ни бьюсь всё не получается. Нигде явно не написано, что это невозможно, поэтому надеюсь что кто-то знает способ.
А вообще задача у меня такая, что нужно программным путём замутить аппроксимацию значений с достаточочно высокой точностью и как можно более универсальным набором базовых функций (экспоненты и прямые не подходят, т.е. базовые Excel-евские функции работают с громадной ошибкой). Всё это желательно сделать в рамках MS Office.
Если кто-то что-то знает по этим двум поводам, скажите плз. Тема интересная)
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #1
Добавлено: 20.08.08 17:41
Передаешь ссылку на массив ?
Номер ответа: 2
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #2
Добавлено: 20.08.08 23:26
Мож я чего не понял, но вот у меня всё получается.
Странный вопрос.
Private Sub FindNumeric(Array1 As Variant, Array2 As Variant)
Dim tmpRow As Integer
For tmpRow = 0 To 9
MsgBox Array1(tmpRow),,Array2(tmpRow)
Next
End Sub
Номер ответа: 3
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #3
Добавлено: 20.08.08 23:30
Так что ли?
Dim ar(3) As String
ar(0) = "s0"
ar(1) = "s1"
ar(2) = "s2"
MSG ar, 1
End Sub
Private Sub MSG(Strings() As String, Index As Integer)
MsgBox Strings(Index)
End Sub
Номер ответа: 4
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #4
Добавлено: 21.08.08 07:41
Dim a as String, ar(3) As String
a = "Вот "
ar(0) = "s0"
ar(1) = "s1"
ar(2) = "s2"
MsgBox ResArray(a, ar)
End Sub
Private Function ResArray(a as String, mar As Variant) As String
s = ""
For Each b In mar
s = s & " " & b
Next b
ResString = a & s
End Function