Visual Basic - AYUDA! DESBORDAMIENTO..URGENTE!

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Franz

AYUDA! DESBORDAMIENTO..URGENTE!

Publicado por Franz (2 intervenciones) el 11/07/2017 15:47:16
TEGNO UN ERROR EN MI CODIGO .. ME APARECE DESBORDAMIENTO Y YA INTENTE CAMBIARLE DE TIPO DE VARIABLE Y NADA, INCLUSO USE CDbl & CVar & Csng.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Sub Matriz_K_Locales()
 
    Call GenerarTitulo
 
 
    Dim MatrizT() As Variant
 
    Dim MatrizKlocal() As Variant
    Dim MatrizPropIndividual() As Variant
 
 
    Dim m As Long
    Dim k As Long
    Dim x As Long
    Dim i As Long
    Dim j As Long
 
    Dim q As Single
 
 
    Dim l As Single
    Dim b As Single
    Dim h As Single
    Dim E As Double
    Dim beta As Single
 
    Dim c1 As Single
    Dim c2 As Single
 
    Dim v As Single
    Dim g As Double
    Dim a As Single
    Dim Ixy As Double
    Dim f1 As Double
    Dim f2 As Double
    Dim fi As Variant
 
        m = 6 'Worksheets("Hoja1").Range("A8", Range("A8").End(xlDown)).Count
 
 
    'GENERAR VARIAS MATRICES LOCALES PARA CADA ELEMENTO
        For x = 1 To Datos.NdeElementos
 
        ReDim Preserve MatrizPropIndividual(1 To m, 1)
 
                For k = 1 To m
 
                    MatrizPropIndividual(k, 1) = Worksheets("Hoja1").Cells(k + 7, x + 1).Value
 
                    l = MatrizPropIndividual(1, 1)
                    b = MatrizPropIndividual(2, 1)
                    h = MatrizPropIndividual(3, 1)
                    E = MatrizPropIndividual(4, 1)
                    c1 = MatrizPropIndividual(5, 1)
                    c2 = MatrizPropIndividual(6, 1)
 
                    beta = 1.2
                    v = 0.2
                    g = E / (2 * (1 + v))
                    a = b * h
                    Ixy = b * (h ^ 3) / 12
 
                    fi = (3 * E * Ixy * beta) / (g * a * (l ^ 2)) ' AQUI EL DESBORDAMIENTO 
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

AYUDA! DESBORDAMIENTO..URGENTE!

Publicado por Antoni Masana (558 intervenciones) el 12/07/2017 07:16:51
No se, ni puedo saber cual es el problema con la información que proporcionas.

Pero si te puedo decir que hagas lo que yo haría.

Coloca un punto de interrupción en la línea en cuestión (F9) y examina paso a paso las operaciones.

Y cuando digo paso a paso, quiero decir seleccionar operador a operador,

Haces una Inspección Rápida con Mayús+F9 o Shift+F9 y añades a la ventana inspecciones:

Primero variable a variable

1
2
3
4
5
6
7
3
E
Ixi
beta
g
a
l

Y despúes operación a operación

1
2
3
4
5
6
7
8
9
10
3 * E
3 * E * Ixy
3 * E * Ixy * beta
 
g
g * a
l ^ 2
g * a * (l ^ 2)
 
Y después la división

En la ventana de podrás ver el valor y el tipo de variable. En el primer caso el 3 es un 3 esto no tiene misterio, pero ¿que Tipo de valor es?
Seguramente es un Integer.

Y si se multiplica un Integer por un Double el resultado es ...

Ves por donde va la idea, en el primer paréntesis multiplicas: Integer * Double * Double * Single y el resultado es ...

En el divisor: Double * Double * Single y el resultado es ...

La primera variable a de ser la de mayor capacidad, teniendo en cuenta si hay decimales.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Franz

AYUDA! DESBORDAMIENTO..URGENTE!

Publicado por Franz (2 intervenciones) el 12/07/2017 18:40:35
Muchas Gracias lo intentare! :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar