i am trying to write a script in qtp like this
Public Function sayhi
msgbox "hi"
end
Dim level0
dim count1
count1 = DataTable.GetSheet("Action1").GetRowCount
msgBox count1
For counterVariable = 1 to count1
functionname = DataTable.value("methodnames","Action1")
call functionname
DataTable.GetSheet("Action1").SetCurrentRow(counterVariable)
Next
assume functionname is going to have a value say "sayhi". Can i use that value to call the function ? like i did in the code "call functionname".
I know it is not working but how to do such call ?
Option Explicit
function abc(a)
MsgBox a
End function
dim run : run = "abc ""Hallo"""
execute run
The execute method can do this
Public Function sayhi
msgbox "hi"
end
Dim level0
dim count1
count1 = DataTable.GetSheet("Action1").GetRowCount
msgBox count1
For counterVariable = 1 to count1
functionname = "call " & DataTable.value("methodnames","Action1")
execute functionname
DataTable.GetSheet("Action1").SetCurrentRow(counterVariable)
Next
will call sayhi if its in the datatable.
Use GetRef() to get a 'pointer'/reference to a Sub or Function:
Option Explicit
Sub S1( s )
WScript.Echo "S1:", GetRef( "F1" )( s )
End Sub
Function F1( s )
F1 = UCase( s )
End Function
Dim sName : sName = "S1"
Dim subS1 : Set subS1 = GetRef( sName )
subS1 "abc"
output:
cscript getrefdemo.vbs
S1: ABC
来源:https://stackoverflow.com/questions/7644792/is-it-possible-to-call-a-function-whose-name-is-stored-in-a-string-in-vbscript