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