Quiero aprender Visual Basic, pero muchas veces tengo problemas para entender los códigos
Hola mauricio, estoy intentando aprender VBA y hay algunas cosas que no comprendo cuando realizas los códigos. Yo se que podrás aclararme muchas inquietudes. Hace poco hiciste un código para trabajar con tiempo, cuando lo trate de ejecutar, la línea:
TimerID = SetTimer(0, 0, Intervalo, AddressOf TimerExecute)
Me aparece en rojo y no corre la Macro. Otra pregunta HWnd, nlDEvent, uElapse, ¿lpTimerFunc son variables que se declaran pero no se utilizan en el código porque? ¿O si se utilizan?. Para que usas ByVal y porque el Numero
1000 en la expresión IniciarTimer 1000
Private Declare Function SetTimer Lib "User32" (ByVal hWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "User32" (ByVal hWnd As Long, _
ByVal nIDEvent As Long) As Long
Dim TimerID As Long
Private Sub IniciarTimer(ByVal Intervalo As Long)
#If Win32 Then
TimerID = SetTimer(0, 0, Intervalo, AddressOf TimerExecute)
#End If
End Sub
Public Sub DetenerReloj()
KillTimer 0, TimerID
End Sub
Private Sub TimerExecute()
Dim strReloj As String
On Error Resume Next
strReloj = Format(Now, "HH:mm:ss")
Range("D2").Value = strReloj
End Sub
Public Sub IniciarReloj()
IniciarTimer 1000
End Sub
Muchas gracias por tu ayuda
TimerID = SetTimer(0, 0, Intervalo, AddressOf TimerExecute)
Me aparece en rojo y no corre la Macro. Otra pregunta HWnd, nlDEvent, uElapse, ¿lpTimerFunc son variables que se declaran pero no se utilizan en el código porque? ¿O si se utilizan?. Para que usas ByVal y porque el Numero
1000 en la expresión IniciarTimer 1000
Private Declare Function SetTimer Lib "User32" (ByVal hWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "User32" (ByVal hWnd As Long, _
ByVal nIDEvent As Long) As Long
Dim TimerID As Long
Private Sub IniciarTimer(ByVal Intervalo As Long)
#If Win32 Then
TimerID = SetTimer(0, 0, Intervalo, AddressOf TimerExecute)
#End If
End Sub
Public Sub DetenerReloj()
KillTimer 0, TimerID
End Sub
Private Sub TimerExecute()
Dim strReloj As String
On Error Resume Next
strReloj = Format(Now, "HH:mm:ss")
Range("D2").Value = strReloj
End Sub
Public Sub IniciarReloj()
IniciarTimer 1000
End Sub
Muchas gracias por tu ayuda
1 Respuesta
Respuesta de valedor
1