Variable en Scriptcontrol
Publicado por Dario (28 intervenciones) el 12/08/2007 23:44:26
Buenas amigos!
Estoy intentando utilizar dicho control para evaluar el resultado de Funciones, el problema lo tengo cuando intento meter una funcion dentro de una variable, ej:
El siguiente ejemplo es el que encontre:
'Prueba 2 de ScriptControl
Dim sCodigo As String
Dim vValor As Variant
sCodigo = "Function Multiplica(a, b)" & vbCrLf & _
" Multiplica = a * b" & vbCrLf & _
"End Function"
'Por supuesto que también se podría asignar así:
'sCodigo = "Function Multiplica(a, b) Multiplica = a * b End Function"
'Añadimos el código, especificamos el lenguaje y ejecutamos
With ScriptControl1
.Language = "VBScript"
.AddCode sCodigo
'Usamos Run para obtener el resultado
'vValor = .Run("Multiplica", "2", "5")
'Usando Eval, nos permite que la expresión esté en
'una variable... además de hacerlo directamente,
'pero se usa de la misma forma que lo haríamos desde VB
vValor = .Eval("Multiplica(2,5)")
'Mostramos el valor devuelto
MsgBox "El valor devuelto es: " & vValor
End With
Como veran la Funcion Multiplica esta correctamente almacenada en Scodigo, ahora bien cuando intento meter la siguiente funcion en otra variable pasa lo siguiente:
sotravar = "Public Function Suma(F1 As Currency, F2 As Currency) As Currency" & vbCrLf & _ 'ya en esta linea me marca error: Se esperaba: Expresion
"Suma = Format(F1 + F2, "##,##0.00")" & vbCrLf & _ 'lo mismo aca debe ser por las """"
"End Function"& vbCrLf & _
Como lo indico, me emite el error: Se esperaba: Expresion , yo calculo que debe ser por los caracteres raros y las comillas pero no entiendo como hacer lo que pretendo, desde ya muchas gracias por su tiempo y por su ayuda.
Estoy intentando utilizar dicho control para evaluar el resultado de Funciones, el problema lo tengo cuando intento meter una funcion dentro de una variable, ej:
El siguiente ejemplo es el que encontre:
'Prueba 2 de ScriptControl
Dim sCodigo As String
Dim vValor As Variant
sCodigo = "Function Multiplica(a, b)" & vbCrLf & _
" Multiplica = a * b" & vbCrLf & _
"End Function"
'Por supuesto que también se podría asignar así:
'sCodigo = "Function Multiplica(a, b) Multiplica = a * b End Function"
'Añadimos el código, especificamos el lenguaje y ejecutamos
With ScriptControl1
.Language = "VBScript"
.AddCode sCodigo
'Usamos Run para obtener el resultado
'vValor = .Run("Multiplica", "2", "5")
'Usando Eval, nos permite que la expresión esté en
'una variable... además de hacerlo directamente,
'pero se usa de la misma forma que lo haríamos desde VB
vValor = .Eval("Multiplica(2,5)")
'Mostramos el valor devuelto
MsgBox "El valor devuelto es: " & vValor
End With
Como veran la Funcion Multiplica esta correctamente almacenada en Scodigo, ahora bien cuando intento meter la siguiente funcion en otra variable pasa lo siguiente:
sotravar = "Public Function Suma(F1 As Currency, F2 As Currency) As Currency" & vbCrLf & _ 'ya en esta linea me marca error: Se esperaba: Expresion
"Suma = Format(F1 + F2, "##,##0.00")" & vbCrLf & _ 'lo mismo aca debe ser por las """"
"End Function"& vbCrLf & _
Como lo indico, me emite el error: Se esperaba: Expresion , yo calculo que debe ser por los caracteres raros y las comillas pero no entiendo como hacer lo que pretendo, desde ya muchas gracias por su tiempo y por su ayuda.
Valora esta pregunta


0