Buenas tardes:
Tuve un error por un corta-pega de código, pero desafortunadamente el resultado es el mismo.
Una matriz "normal" funciona sin problemas, pero la matriz generada con un tipo personalizado de variable, da error de variable de objeto no establecida.
El código utilizado es el siguiente:
Código: Seleccionar todo
Sub EscEjes(ESerie() As Object)
Dim Minimo As Double
Dim Maximo As Double
Dim Co1 as integer
Dim nSer as integer
Dim util as Object
Dim MatAux()
Redim MatAux(Ubound(ESerie()))
util = createUnoService("org.universolibre.EasyDev")
For Co1 = 0 to Ubound(ESerie())
MatAux(Co1)=ESerie(Co1).EstX.Max
Next Co1
Maximo=util.max(MatAux)
MsgBox Maximo
util.msgbox(util.max(MatAux))
'a=Array(ESerie.EstX.Max)
'a=Array(ESerie().EstX.Max)
'util.msgbox(util.max(Array(ESerie.EstX.Max)))
util.msgbox(util.max(ESerie.EstX.Max))
End Sub
La matriz ESerie corresponde a un tipo personalizado de variable
Con el lazo For - Next paso un componente de esa variable a una matriz auxiliar
Cuando utilizo la matriz auxiliar funciona sin problemas
Cuando utilizo la matriz ESerie da el siguiente error:
- Error con Matrices
Las instrucciones que están comentadas con comilla, dan todas el error indicado en la imagen
La estructura de la variable personalizada es la siguiente:
Código: Seleccionar todo
Type TEstad
Num As Long 'Número de datos
Med As Double 'Valor medio
Max As Double 'Valor máximo
Min As Double 'Valor mínimo
Des as Double 'Desviación estandar de la muestra
End Type
Type TSerie 'Parámetros necesarios para definir la serie
Doc as Object 'Documento en el que están los datos de la serie
Hoja as Integer 'Hoja en el que están los datos de la serie
ColX as Integer 'Columna en la que están los datos de las abscisas (x)
Coly as Integer 'Columna en la que están los datos de las ordenadas (y)
FilA as Long 'Primera Fila con datos
FilZ as Long 'Última Fila con datos
FilT as Long 'Fila con el título de la serie
EstX as New TEstad 'Estdísticos de los valores X
EstY as New TEstad 'Estdísticos de los valores Y
EstY2 as New TEstad 'Estdísticos de los valores Y secundario
EjeY as Integer 'En el caso del eje Y: =0 Eje principal, =1 eje secundario
FacEsc as Single 'Factor escala con respecto a la serie de referenicia: Intervalo inicial de la Serie(0)
IndSol as Single 'Indice de solapamiento con la Serie(0). Sirve para separar el trazado de dos series
'Pueden estar en el mismo o diferente ejeY que la serie(0)
'El valor asignado corresponde al % de solapamiento con la serie(0)
'El valor varía entre 0-100
'
FTxt as Integer 'Formato de la serie
End Type
El objetivo final es controlar los parámetros de escala de los ejes del gráfico.
Esa variable personalizad tiene los parámetros correspondientes a las series. Por una parte los datos que definen los rangos de datos y por otra parte los dato de interés, por ejemplo los valores máximos y mínimos de cada intervalo
Pretendo obtener los valores máximo y mínimo correspondientes a cada eje, teniendo en cuenta los intervalos de las diferentes series a las que se asigna ese eje.
En este caso tengo dos series con los datos en ESerie(0) y ESerie(1)
Los valores Minimos de cada serie correspondientes al eje X están en:
ESerie(0).EjeX.Min
ESerie(1).EjeX.Min
Me interesa obtener el valor mínimo de los dos, y en el caso de n series en el mínimo de los valores ESerie(0-n).EjeX.Min
Los mismo ocurre con los valores máximos
En el caso de utilizar un eje Y secundario, me interesa "sincronizarlo" con el eje Y principal, de forma que la rejilla del eje Y coincida con la rejilla del eje Y2. Para ello necesito conocer los valores extremos de uno y otro de la misma forma que he indicado en el caso del eje X
Muchas gracias