es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Variable pública pierde el valor

Estoy aprendiendo cómo usar variables públicas en mis proyectos de Excel, en este momento me estoy encontrando con el siguiente problema:
Estoy declarando mi variable en un módulo único de la siguiente manera:

Option Explicit
Public Pass_H As String
Public Pass_L As String

Al comienzo del proyecto la declaro de la siguiente manera:

Private Sub Workbook_Open()
ThisWorkbook.Windows(1).Visible = False
Pass_H = Sheets("Pass").Range("C4").Value
Pass_L = Sheets("Pass").Range("F4").Value

Y la utilizo en otros proyectos de otras hojas de cálculo, por ejemplo:

Private Sub CB_3_Click()
Dim Final_T As Range, Final_N As Range
With ActiveSheet
    Set Final_T = .Range("A1").End(xlToRight)
    Set Final_N = Final_T.End(xlDown)
    .Unprotect Pass_H
    .Range("A1", Final_N).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes
    .Protect (Pass_H)
End With
End Sub

O:

Private Sub Blo()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Sheets
        ws.Protect (Pass_H)
    Next ws
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Pero incluso en estas líneas simples, el valor se pierde en algún punto y aparece como nada. Ya revisé el resto del proyecto y la única declaración o referencia está en el Workbook.Open().
No entiendo qué podría estar haciendo mal.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás declarando e inicializando correctamente las variables públicas en tu código. El problema de que las variables aparezcan como nada podría ser causado por varias cosas diferentes. Una posibilidad es que las variables estén siendo sobrescritas por otro procedimiento o función en tu código. Otra posibilidad es que las variables no se estén pasando correctamente entre módulos.

    Para solucionar este problema, puedes intentar agregar algunos mensajes de depuración a tu código. Por ejemplo, puedes agregar una ventana de mensaje o una instrucción de impresión para mostrar los valores de las variables en diferentes etapas de tu código y verificar si los valores se están conservando. También puedes probar a utilizar diferentes nombres de variables o cambiar su ámbito (por ejemplo, hacer que sean de nivel de módulo en lugar de públicas) para ver si eso resuelve el problema.

    Además, asegúrate de que ningún otro código cambie o borre los valores de las variables, y de que se estén pasando correctamente entre diferentes módulos o procedimientos. También puedes intentar pasar explícitamente las variables como argumentos a funciones o procedimientos, en lugar de confiar en que sean accesibles globalmente.

    En general, es importante aislar e identificar el problema específico que hace que las variables pierdan sus valores, y luego tomar medidas para resolver ese problema. Al revisar cuidadosamente tu código, utilizar mensajes de depuración y explorar diferentes soluciones, deberías poder utilizar las variables públicas en tus proyectos de Excel con éxito.

Comments are closed.