Vbscript 如何使用在一个函数中检索的数据作为另一个函数的输入参数?
我的情况是,我想使用通过函数Vbscript 如何使用在一个函数中检索的数据作为另一个函数的输入参数?,vbscript,Vbscript,我的情况是,我想使用通过函数ReadData\u Excel()检索的数据作为函数Insert\u UserdataFromExceltoGUIFields()的输入数据/参数 通过将返回值设置为具有函数名称的变量来分配返回值。您可以在函数ReadData\u Excel()内调用Insert\u UserdataFromExceltoGUIFields()(这实际上是一个过程,而不是一个函数,因为它不返回任何内容) 这还将简化Insert_UserdataFromExceltoGUIField
ReadData\u Excel()
检索的数据作为函数Insert\u UserdataFromExceltoGUIFields()
的输入数据/参数
通过将返回值设置为具有函数名称的变量来分配返回值。您可以在函数
ReadData\u Excel()
内调用Insert\u UserdataFromExceltoGUIFields()
(这实际上是一个过程,而不是一个函数,因为它不返回任何内容)
这还将简化Insert_UserdataFromExceltoGUIFields()
的接口,因为您只传递了一个对象,而不是大量不同的参数(当然,您应该用一个更自解释的名称替换数据
):
不要屈服于对从文件读取的数据使用全局变量的诱惑。这将完全违背在函数中封装代码的目的。@user3815724不客气。如果你发现它解决了你的问题,请考虑一下。
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
function abc()
abc = 1
end function
dim a : a = abc
Public Function ReadData_Excel(strPathFile,strSheetName)
...
Set objWorkbook = Nothing
Set objExcel= Nothing
Insert_UserdataFromExceltoGUIFields ParameterValue 1, ParameterValue 2, ...
End Function
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")
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