|
Передать Массив в функцию
|
|||
---|---|---|---|
#18+
Коллеги, помогите неграмотному Необходимо передать массив в функцию Если заполняю массив в ручную a(1)=1: a(2)=5: a(3)=7, то все работает А если с помощью фунции Array(1, 5, 7), то выдает ошибку Compile error: Type mismatch: array or user-defined type expected В ниже представленном коде если закомментировать строку Array_Bardak = Sum_Array(a()) и раскомментировать следующую строку Array_Bardak = Sum_Array(Array(1, 5, 7)) - выдает ошибку Что надо поправить в коде ? Function Array_Bardak() Dim a(1 To 3) As Integer a(1) = 1: a(2) = 5: a(3) = 7 Array_Bardak = Sum_Array(a()) 'Array_Bardak = Sum_Array(Array(1, 5, 7)) End Function Function Sum_Array(a() As Integer) As Integer Dim i As Integer For i = 1 To UBound(a) Sum_Array = Sum_Array + a(i) Next i End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 15:45 |
|
Передать Массив в функцию
|
|||
---|---|---|---|
#18+
Sema9если закомментировать строку Array_Bardak = Sum_Array(a()) и раскомментировать следующую строку Array_Bardak = Sum_Array(Array(1, 5, 7)) - выдает ошибкуА посмотреть, где ошибка и какая, религия не позволила? Как ты думаешь, можно обращаться к элементу трёхмерного массива как a(i)??? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 15:51 |
|
Передать Массив в функцию
|
|||
---|---|---|---|
#18+
AkinaSema9если закомментировать строку Array_Bardak = Sum_Array(a()) и раскомментировать следующую строку Array_Bardak = Sum_Array(Array(1, 5, 7)) - выдает ошибкуА посмотреть, где ошибка и какая, религия не позволила? Как ты думаешь, можно обращаться к элементу трёхмерного массива как a(i)??? А почему трехмерный ? Вот пример из мелкософтовского мануала Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table")) Здесь что, массив Array(Empty, Empty, Empty, "Table") четырехмерный ? Или я чего-то не понимаю ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 16:51 |
|
Передать Массив в функцию
|
|||
---|---|---|---|
#18+
Sema9Akinaпропущено... А посмотреть, где ошибка и какая, религия не позволила? Как ты думаешь, можно обращаться к элементу трёхмерного массива как a(i)??? А почему трехмерный ? Вот пример из мелкософтовского мануала Set rs = cn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table")) Здесь что, массив Array(Empty, Empty, Empty, "Table") четырехмерный ? Или я чего-то не понимаю ? да хоть 10-мерный, лишь бы памяти хватало. или вы считает, что измерений не больше 3х? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 17:17 |
|
Передать Массив в функцию
|
|||
---|---|---|---|
#18+
Sema9, Функция Array возвращает массив типа Variant(), а у Вас все переменные Integer, отсюда Type mismatch. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 19:34 |
|
Передать Массив в функцию
|
|||
---|---|---|---|
#18+
КазанскийФункция Array возвращает массив типа Variant(), а у Вас все переменные Integer, отсюда Type mismatch. И так не работает Function Array_Bardak() Dim a(1 To 3) As Variant a(1) = 1: a(2) = 5: a(3) = 7 'Array_Bardak = Sum_Array(a()) Array_Bardak = Sum_Array(Array(1, 5, 7)) End Function Function Sum_Array(a() As Variant) As Integer Dim i As Integer For i = 1 To UBound(a) Sum_Array = Sum_Array + a(i) Next i End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:14 |
|
Передать Массив в функцию
|
|||
---|---|---|---|
#18+
Sema9, я немного ошибся, функция Array возвращает массив внутри единичной переменной типа Variant, т.е. Variant/Variant(). F1Array Function Returns a Variant containing an array Так что Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
или Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Вообще полезно аргументом функции иметь единичную переменную типа Variant. В этом случае в функцию можно почти что угодно. И справку читайте, да. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 20:40 |
|
|
start [/forum/topic.php?fid=60&msg=39704360&tid=2155009]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 143ms |
0 / 0 |