高手求助,VBA每隔一段时间重复执行某个程序
答案:1 悬赏:10 手机版
解决时间 2021-04-04 01:22
- 提问者网友:精神病院里
- 2021-04-03 16:01
高手求助,VBA每隔一段时间重复执行某个程序
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-04-03 17:29
1. OnTime方法
Public Declare PtrSafe Function PlayWaveSound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszsoundname As String, ByVal uflags As Long) As Long
Sub run_timer()
Application.OnTime Now + TimeValue("00:00:03"), "showmsg"
End Sub
Sub showmsg()
Dim i As Integer
Dim soundName As String
soundName = "C:\WINDOWS\Media\Windows Ding.wav" '指定声音文件
PlayWaveSound soundName, 1 '0: 放完声音再往下执e799bee5baa6e58685e5aeb931333361326232行/ 1: 立即往下执行
MsgBox "现在时间:" & Now, , "现在时间"
End Sub
2.VBA调用winapi 计时器方法
(64位系统使用)
Private Declare PtrSafe Function SetTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr, ByVal uElapse As LongPtr, ByVal lpTimerFunc As LongPtr) As LongPtr
Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr) As LongPtr
Public Declare PtrSafe Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public hMain As LongPtr
Sub OnTime1()
frmCheck.lblTime.Caption = Format(Now, "hh:mm:ss")
End Sub
Public Sub enableTimer()
SetTimer hMain, 1001, 1000, AddressOf OnTime1
End Sub
Public Sub DisableTimer()
KillTimer hMain, 1001
End Sub
Public Declare PtrSafe Function PlayWaveSound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszsoundname As String, ByVal uflags As Long) As Long
Sub run_timer()
Application.OnTime Now + TimeValue("00:00:03"), "showmsg"
End Sub
Sub showmsg()
Dim i As Integer
Dim soundName As String
soundName = "C:\WINDOWS\Media\Windows Ding.wav" '指定声音文件
PlayWaveSound soundName, 1 '0: 放完声音再往下执e799bee5baa6e58685e5aeb931333361326232行/ 1: 立即往下执行
MsgBox "现在时间:" & Now, , "现在时间"
End Sub
2.VBA调用winapi 计时器方法
(64位系统使用)
Private Declare PtrSafe Function SetTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr, ByVal uElapse As LongPtr, ByVal lpTimerFunc As LongPtr) As LongPtr
Private Declare PtrSafe Function KillTimer Lib "user32.dll" (ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr) As LongPtr
Public Declare PtrSafe Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public hMain As LongPtr
Sub OnTime1()
frmCheck.lblTime.Caption = Format(Now, "hh:mm:ss")
End Sub
Public Sub enableTimer()
SetTimer hMain, 1001, 1000, AddressOf OnTime1
End Sub
Public Sub DisableTimer()
KillTimer hMain, 1001
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |