El 05/10/12 13:56, Miguel Humberto Valdiri Badillo escribió:
El día 4 de octubre de 2012 22:44, Jose Humberto Araque Meza
<jhara...@gmail.com> escribió:
Hola comunidad

Estoy elaborando unas macros en libreoffice pero en dos en particular tengo
unos resultados errados, no se si será algún problema del libreoffice, las
dos funciones son muy simples.

El asunto es el siguiente:

1. tengo una función llamada vestocastic, que suma los valores de un rango
de datos y si es uno devuelve verdadero, en caso contrario devuelve falso,
pero en ocaciones aunque la suma de los valores da uno, devuelve falso.

2. tengo otra función llamada enumeric, que lo que hace es verificar que un
elemento sea numérico, tengo el separador de decimales establecido como
coma, pero cuando tengo un valor que inicia con punto seguido de un número,
la función me devuelve que es numérico, cuando debe devolver lo contrario.

El archivo esta disponible en:
http://ubuntuone.com/0IlE5hKbyFlPg0JSL0OqsM

Tengo ubuntu 12.04 64 bits y libreoffice 3.6.0.2 (id de compilacion
360m1(build:102))

De antemano gracias por los aportes que me puedan hacer.


hechiz-0

--
Al escribir recuerde observar la etiqueta (normas) de esta lista:
http://goo.gl/Pu0ke
Para cambiar su inscripción, vaya a "Cambio de opciones" en
http://goo.gl/Nevnx
Que gracioso, conmuté los valores en la segunda fila y dio "True".

Con los datos de la hoja, la variable suma siempre es = 1 pero cuando hace la comparación "if suma=1 then" a pesar de que suma contiene como valor 1, el resultado es falso.
El código es muy simple:
-----------------------------------------------------------
'Option explicit
'option base 1

Function vEstocastic (vector()) as boolean
dim i, m as integer
dim suma as variant
    suma = 0
    m = ubound(vector, 2)
    for i = 1 to m
        suma = suma + vector(1, i)
    next
    if suma = 1 then    'Esta es la línea que no funciona como debiera
        vEstocastic = true
    else
        vEstocastic = false
    end if
End Function

Function eNumeric (elemento) as boolean
    if isnumeric(elemento) then    'Esta línea tampoco funciona siempre
        eNumeric = true
    else
        eNumeric = false
    end if
End Function
------------------------------------------------------

--
Al escribir recuerde observar la etiqueta (normas) de esta lista: 
http://goo.gl/Pu0ke
Para cambiar su inscripción, vaya a "Cambio de opciones" en http://goo.gl/Nevnx

Responder a