Public Function ReadData_Excel(strPathFile,strSheetName)
Set objExcel=CreateObject("Excel.Aplication")
Set objWorkbook=objExcel.Workbooks.Open(strPathFile)
Set objWrkSheet=objWorkbook.GetSheet(strSheetName)
For iRow = 1 to objWrkSheet.UsedRange.Rows.Count
'Retrieve Parameter values from "iRow" rows and columns A & B
ParameterValue 1= objWrkSheet.Rows(iRow).Columns(iUserNameCol).Value
ParameterValue 2= objWrkSheet.Rows(iRow).Columns(iPasswordCol).Value
...
ParameterValue n
Next
xlBook.Close
xlApp.Quit
Set objWrkSheet = Nothing
Set objWorkbook = Nothing
Set objExcel= Nothing
End Function
Public Function Insert_UserdataFromExceltoGUIFields(ParameterValue 1,ParameterValue 2, ...,ParameterValue n)
'Parameterization Block:
With Browser("title:=Welcome: XXX", "index:=0")
'Step 2
.WebEdit("YID:=YYY").Set ParameterValue 1 'Parameter 1: YYY
.WebEdit("ZID:=ZZZ").Set ParameterValue 2 'Parameter 2: ZZZ
...
.WebEdit("AID:=AAA").Set ParameterValue n 'Parameter n: ContactNumber
.Image("name:=INSERT").Click
End With
End Function
我的方案是我想使用我用函数ReadData_Excel()
检索的数据作为函数Insert_UserdataFromExceltoGUIFields()
的输入数据/参数。
答案 0 :(得分:0)
function abc()
abc = 1
end function
dim a : a = abc
通过将返回值设置为具有函数名称的变量来指定返回值。
答案 1 :(得分:0)
你可以在函数Insert_UserdataFromExceltoGUIFields()
中调用ReadData_Excel()
(这实际上是一个过程而不是一个函数,因为它不会返回任何东西)。
Public Function ReadData_Excel(strPathFile,strSheetName)
...
Set objWorkbook = Nothing
Set objExcel= Nothing
Insert_UserdataFromExceltoGUIFields ParameterValue 1, ParameterValue 2, ...
End Function
否则,您必须更改ReadData_Excel()
,以便它实际返回您阅读的数据。为此,您应首先定义适当的数据结构。例如,您可以将数据读入字典并返回:
Public Function ReadData_Excel(strPathFile,strSheetName)
...
Set data = CreateObject("Scripting.Dictionary")
For iRow = 1 to objWrkSheet.UsedRange.Rows.Count
'Retrieve Parameter values from "iRow" rows and columns A & B
data("XXX") = objWrkSheet.Rows(iRow).Columns(iUserNameCol).Value
data("ZZZ") = objWrkSheet.Rows(iRow).Columns(iPasswordCol).Value
...
data("ContactNumber") = ...
Next
...
Set ReadData_Excel = data
End Function
Set xlData = ReadData_Excel("C:\path\to\your.xlsx", "somesheet")
这也会简化Insert_UserdataFromExceltoGUIFields()
的界面,因为你只传递一个对象而不是一堆不同的参数(当然你应该用更加不言自明的方式替换data
名):
Public Function Insert_UserdataFromExceltoGUIFields(data)
'Parameterization Block:
With Browser("title:=Welcome: XXX", "index:=0")
'Step 2
.WebEdit("YID:=YYY").Set data("XXX")
.WebEdit("ZID:=ZZZ").Set data("ZZZ")
...
.WebEdit("AID:=AAA").Set data("ContactNumber")
.Image("name:=INSERT").Click
End With
End Function
不让步于使用全局变量来从文件中读取数据的诱惑。这完全违背了在函数中封装代码的目的。