2017-11-26 12 views
0

私のExcelシートに10個のレコード(行)があり、それを配列に取り込み、関数から返すことができません。私は最後の価値しか得ていません。以下は私のスクリプトです。VBScriptを使用して関数から配列を返す方法

arr = fnFetchDataUsingArray() 
MsgBox arr 

私は最後の値を取得しています:

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 

関数を呼び出します。私のデータシートのスクリーンショットを添付しました。

Datasheet Screenshot

+1

可能な複製[VBScript:関数は配列を返します](https://stackoverflow.com/questions/654888/vbscript-function-returns-an-array) – Lankymart

答えて

2

fnFetchDataUsingArray = arrExcelValues(x-1)だけ繰り返し関数の戻り値にarrExcelValuesの最後の値を割り当てています。 Doループの後に関数の戻り値に配列arrExcelValuesを割り当てる必要があります。

あなたのループの後でこれを試してみてください:fnFetchDataUsingArray = arrExcelValues

関連する問題