Cita:
Iniciado por abeh
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