Передача массива в функцию - PullRequest
3 голосов
/ 30 сентября 2011

У меня есть массив, который читается так:

MyArray(0)='test'
MyArray(1)='test2'
MyArray(2)='test3'

Как мне передать это через функцию?

Function(MyArray(all_arrays)) 

Что мне поставить для all_arrays?

Ответы [ 3 ]

6 голосов
/ 30 сентября 2011
MyArray(0)='test'
MyArray(1)='test2
MyArray(2)='test3'

AcceptArray MyArray

Private Function AcceptArray(myArray())
'Code here
End Function

Вы хотите передать строку перед массивом.

Итак, измените функцию на:

Private Function AcceptArray(param1, myArray)
'Code here
'Don't forget to return value of string type.
End Function

И вы вызываете эту функцию так:

returnValue = AcceptArray("MyString", MyArray)

Если вам не нужно возвращать значение, вы должны использовать Sub.

2 голосов
/ 30 сентября 2011

Похоже, вам нужно определить свою функцию так:

Function <FunctionName>(byref <list Name>)

, затем, когда вы вызываете ее в своем коде, используйте

<FunctionName>(MyArray)

, найденное здесь: http://www.herongyang.com/VBScript/Function-Procedure-Pass-Array-as-Argument.html

Передача по ссылке с использованием только имени массива позволяет передать весь массив функции

1 голос
/ 30 сентября 2011

Простой пример ...

Dim MyArray(2)
MyArray(0) = "Test"
MyArray(1) = "Test2"
MyArray(2) = "Test3"

ProcessArray MyArray

' -------------------------------------
' ProcessArray
' -------------------------------------
Sub ProcessArray(ArrayToProcess())
  For i = 0 To 2
    WScript.Echo ArrayToProcess(i)
  Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...