martes, 7 de marzo de 2017

Alcance y precisión de las variables excel vba

ALCANCE DE VARIABLES EXCEL VBA

 AQUÍ EL CÓDIGO:

Private A As Integer    'Solo para este modulo
Public B As Integer     'Para todos los modulos
Sub Macro1()
Dim A As Integer        'La variable A se inicializa en cero siempre
    A = A + 1
    MsgBox "A= " & A
End Sub
Sub Macro2()            'No se reinicializa
    A = A + 1           'Variable A, comparte valor con la Macro3
    Rpta = MsgBox("A= " & A & ",    Desea reinicializar A?", vbYesNo)
    If Rpta = vbYes Then A = 0
End Sub
Sub Macro3()            'No se reinicializa
    A = A + 1           'Variable A, comparte valor con la Macro2
    Rpta = MsgBox("A= " & A & ",    Desea reinicializar A?", vbYesNo)
    If Rpta = vbYes Then A = 0
End Sub
Sub Macro4()            'No se reinicializa
Static A As Integer     'Variable conserva su valor solo en esta macro
    A = A + 1
    Rpta = MsgBox("A= " & A & ",    Desea reinicializar A?", vbYesNo)
    If Rpta = vbYes Then A = 0
End Sub
Sub Macro5()            'No se reinicializa
    B = B + 1           'Variable B, comparte valor con la Macro7
    Rpta = MsgBox("B= " & B & ",    Desea reinicializar B?", vbYesNo)
    If Rpta = vbYes Then B = 0
End Sub



----------------------------------------------------------------------------------------------------------------------

AQUÍ EL CÓDIGO:

Private A As Integer
Sub Macro6()            'No se reinicializa
    A = A + 1           'Conserva su valor solo en este modulo
    Rpta = MsgBox("A= " & A & ",    Desea reinicializar A?", vbYesNo)
    If Rpta = vbYes Then A = 0
End Sub
Sub Macro7()            'No se reinicializa
    B = B + 1           'Variable B, comparte valor con la Macro5
    Rpta = MsgBox("B= " & B & ",    Desea reinicializar B?", vbYesNo)
    If Rpta = vbYes Then B = 0
End Sub

---------------------------------------------------------------------------------------------------------------

PRECISIÓN DE LAS VARIABLES


AQUÍ EL CÓDIGO:


Sub Macro8()
    Dim N As Integer
    Dim M As Integer
    Dim Calc1 As Integer
    Dim Calc2 As Single
    N = Range("B3")
    M = Range("B4")
    Calc1 = N / M
    Range("B6") = Calc1
    Range("B7") = Calc1 * M
    Calc2 = N / M
    Range("B9") = Calc2
    Range("B10") = Calc2 * M
End Sub
Sub Macro9()
    Dim N As Integer
    Dim M As Integer
    Dim Calc1 As Double
    Dim Calc2 As Variant
    N = Range("F3")
    M = Range("F4")
    Calc1 = N / M
    Range("F6") = Calc1
    Range("F7") = Calc1 * M
    Calc2 = N / M
    Range("F9") = Calc2
    Range("F10") = Calc2 * M
End Sub

No hay comentarios:

Publicar un comentario