Error al enviar rango de celdas a UDF en EXCEL!
Hola.-
Intento, a través de una UDF creada por mi, revisar un rango de celdas en EXCEL.
El caso es que la UDF recibe como parámetro un rango de celdas seleccionado en la hoja de cálculo, pero al ejecutarse obtengo "#¡VALOR!".
Hasta donde he podido observar, el error se presenta cuando intento hacer referencia a algún elemento de la matriz en cuestión; por ejemplo, al utilizar funciones como LBound o UBound, o cuando utilizo el índice para referirme a un elemento en particular; supongamos aMatriz(3).
Les envío un ejemplo de lo que pretendo hacer, a ver si pueden orientarme y decir cuál es el error que estoy cometiendo.
De antemano, muchas gracias!
Ejemplo:
En la hoja de Cálculo tenemos Nombres de Ciudades en la columna A, desde A1 hasta A50 (y esto puede variar; no es fijo el tamaño de la matriz); y en la celda C1 escribo "=ElDatoX(A1:A50)"
En el editor de Visual Basic, en el Módulo correspondiente, el siguiente código:
==========================================================
Function ElDatoX(aMatriz as Variant) as Variant
If Not IsArray(aMatriz) Then
ElDatoX = "<<¡¡Debe ser una Matriz>>"
Exit Function
Endif
Dim nI as Integer
For nI = 1 To Ubound(aMatriz)
x = MsgBox(aMatriz(nI), vbCritical, nI)
Next
End Function
===========================================================
NOTA: Estoy usando EXCEL 2003 y la Version de VB es 6.3.-
Intento, a través de una UDF creada por mi, revisar un rango de celdas en EXCEL.
El caso es que la UDF recibe como parámetro un rango de celdas seleccionado en la hoja de cálculo, pero al ejecutarse obtengo "#¡VALOR!".
Hasta donde he podido observar, el error se presenta cuando intento hacer referencia a algún elemento de la matriz en cuestión; por ejemplo, al utilizar funciones como LBound o UBound, o cuando utilizo el índice para referirme a un elemento en particular; supongamos aMatriz(3).
Les envío un ejemplo de lo que pretendo hacer, a ver si pueden orientarme y decir cuál es el error que estoy cometiendo.
De antemano, muchas gracias!
Ejemplo:
En la hoja de Cálculo tenemos Nombres de Ciudades en la columna A, desde A1 hasta A50 (y esto puede variar; no es fijo el tamaño de la matriz); y en la celda C1 escribo "=ElDatoX(A1:A50)"
En el editor de Visual Basic, en el Módulo correspondiente, el siguiente código:
==========================================================
Function ElDatoX(aMatriz as Variant) as Variant
If Not IsArray(aMatriz) Then
ElDatoX = "<<¡¡Debe ser una Matriz>>"
Exit Function
Endif
Dim nI as Integer
For nI = 1 To Ubound(aMatriz)
x = MsgBox(aMatriz(nI), vbCritical, nI)
Next
End Function
===========================================================
NOTA: Estoy usando EXCEL 2003 y la Version de VB es 6.3.-
1 Respuesta
Respuesta de tavopz
1