Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/06/2008, 05:27
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 2 meses
Puntos: 37
Respuesta: Como hago para que Call pase el valor en Visual Basic?

Cita:
Iniciado por abeh Ver Mensaje
Tengo problemas con la funcion Call en Visual Basic para Excel ya que el codigo de abajo cuando va a la subrutina Letras no pasa ningun valor en la variable letra asi lo ponga en parentesis sencillos o dobles o le ponga ByRef. En mi casa si corre pero en la Universidad que la version es mas antigua, no corre. Como puedo hacer para que me pase un valor A, B, etc. en letra??????
Hola,

un procedimiento Sub no devuelve ningún valor, ese código funcionará si la variable letra está declarada como Public (o al principio del módulo).

Para devolver un valor necesitas una Función. Te pongo un ejemplo en el que con sólo una línea de código obtienes lo esperado:

Código:
Private Sub Ejecutar_Click()
For dia = 0 To 365
    columnafinal = 2
    letra_fin = Letras(columnafinal)
    'El resto del progarma
    '.... aquí supongo que incrementarás el valor de columnafinal, sino te va a repetir
    '366 veces el mismo proceso y con el mismo valor
Next dia
End Sub

Public Function Letras(ByVal columna As Integer) As String
Letras = Chr(columna + 64)
End Function