Hej, Fins inget smidigt sätt att skicka in värden i en parameter array. Du får helt enkelt skriva:MS ScriptControl och ParamArray
Jag vill göra en sub (RunScript) som kör script i MS ScriptControl men jag får problem med parametrarna som man ska skicka med.
Vanligtvis kör man scriptet så här:
ScriptControl.Run "Scriptnamn", parameter1, parameter2 osv
Men nu vill jag som sagt köra det ifrån en sub så att jag kan kolla efter felmeddelanden på ett ställe.
Jag har testat med det här (men det funkar inte):
Sub RunScript(ScriptName As String, ParamArray ParameterVar() As Variant)
On Error Goto ErrHand
ScriptControl.Run ScriptName, ParameterVar
Exit Sub
ErrHand:
'ta hand om felen här
End Sub
men jag får felet "Invalid ParamArray use" hela tiden... vad gör jag för fel?
ThomasSv: MS ScriptControl och ParamArray
<code>
Option Explicit
Private mScriptControl As MSScriptControl.ScriptControl
Private Sub Form_Load()
Set mScriptControl = New MSScriptControl.ScriptControl
mScriptControl.Language = "VBScript"
mScriptControl.AddCode "Sub Test(Var1, Var2, Var3)" & vbCrLf & _
" Msgbox Var1" & vbCrLf & _
" Msgbox Var2" & vbCrLf & _
" Msgbox Var3" & vbCrLf & _
"End Sub"
RunScript "Test" ', "A", "B", "C"
End Sub
Sub RunScript(ScriptName As String, ParamArray ParameterVar() As Variant)
On Error GoTo ErrHand
Select Case UBound(ParameterVar)
Case -1
mScriptControl.Run ScriptName
Case 0
mScriptControl.Run ScriptName, ParameterVar(0)
Case 1
mScriptControl.Run ScriptName, ParameterVar(0), ParameterVar(1)
Case 2
mScriptControl.Run ScriptName, ParameterVar(0), ParameterVar(1), ParameterVar(2)
Case 3
mScriptControl.Run ScriptName, ParameterVar(0), ParameterVar(1), ParameterVar(2), ParameterVar(3)
'OSV....
End Select
Exit Sub
ErrHand:
'ta hand om felen här
End Sub
</code>