2011-03-03 12 views
21

Soy nuevo en VB y estoy teniendo dificultades para hacer algo que debería ser muy simple.Error en la función de Excel/VB: "Expresión constante requerida"

que estoy tratando de hacer un conjunto de n + 1 y longitud Me pone "la expresión constante necesaria" cuando se ejecuta el siguiente código

Function binomial(n As Integer, p As Double) 
Dim probabilities(0 To n) As Double 
End Function 

entiendo que los argumentos utilizados para construir la matriz debe ser constantes, pero ¿creo uno a partir del argumento de la función?

gracias de antemano

Respuesta

43

No se puede DIM contra un tamaño variable. ReDim en lugar

Por ejemplo

Function binomial(n As Integer, p As Double) 
Dim probabilities() As Double 
ReDim probabilities(0 To n) 
MsgBox LBound(probabilities) 
MsgBox UBound(probabilities) 
End Function 

Sub test() 
Call binomial(3, 2) 
End Sub 

ejecutar la sub "prueba"

+2

Gracias, que iba loco por esto :) – ANd

Cuestiones relacionadas