我的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
我只得到最后一个值。附上我的数据表截图。
答案 0 :(得分:2)
行fnFetchDataUsingArray = arrExcelValues(x-1)
只是重复将arrExcelValues
中的最后一个值赋给函数的返回值。
在Do循环之后,您需要将数组arrExcelValues
分配给函数的返回值。
所以在你的循环之后试试这个:fnFetchDataUsingArray = arrExcelValues
。