如何使用VBScript从函数返回数组

时间:2017-11-26 21:00:33

标签: arrays excel-vba vbscript vba excel

我的Excel工作表中有10条记录(行),我将它带入数组,我无法从函数中返回它。我只得到最后一个值。以下是我的剧本。

Function fnFetchDataUsingArray()
    Dim arrExcelValues()
    sSheetName = Environment.Value("TestName")

    sExcelWorkbookPath = "I:\ProLinkIII_TestAutomation\trunk\ProLink_TestAutomation\Datasheet\DTSheet_5700C.xlsx"

    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open(sExcelWorkbookPath)

    objExcel.Visible = False
    Set currentWorkSheet = objExcel.ActiveWorkbook.Worksheets(sSheetName)

    i = 1
    x = 0

    Do Until objExcel.Cells(i, 2).Value = ""
        ReDim Preserve arrExcelValues(x)

        arrExcelValues(x) = objExcel.Cells(i, 2).Value

        i = i + 1
        x = x + 1

        fnFetchDataUsingArray = arrExcelValues(x-1)
    Loop

    objExcel.Quit
End Function

调用该函数:

arr = fnFetchDataUsingArray()
MsgBox arr

我只得到最后一个值。附上我的数据表截图。

Datasheet Screenshot

1 个答案:

答案 0 :(得分:2)

fnFetchDataUsingArray = arrExcelValues(x-1)只是重复将arrExcelValues中的最后一个值赋给函数的返回值。 在Do循环之后,您需要将数组arrExcelValues分配给函数的返回值。

所以在你的循环之后试试这个:fnFetchDataUsingArray = arrExcelValues