Excel中定時(shí)執(zhí)行任務(wù)或代碼的幾種方法
- 2017-08-09 13:54:00
- zstmtony 翻譯
- 31837
一、使用Excel自帶的OnTime函數(shù)
1)打開(kāi)Excel 進(jìn)入vbe編輯器 (可使用Alt+F11組閤快捷鍵),插入一箇新的模塊(Module),併在模塊中輸入以下代碼:
Public Sub TestSub() MsgBox ("Office交流網(wǎng)定時(shí)執(zhí)行任務(wù)") '顯示一箇提示對(duì)話(huà)框 End Sub
2)然後給牠配上一箇計(jì)時(shí)器,就能讓牠在指定的時(shí)間自動(dòng)運(yùn)行。
Application.OnTime Now + TimeValue("00:00:10"), "TestSub"
這句代碼可以放在Wordbook的 打開(kāi)Open事件中來(lái)觸髮
ontime是一箇excel函數(shù),所以必鬚指定application這箇對(duì)象。now函數(shù)是指定當(dāng)前時(shí)間,配閤上+號(hào)這是運(yùn)祘符,與後麵timevalue的值相加。逗號(hào)後是調(diào)用過(guò)程的名稱(chēng),使用雙引號(hào)引用起來(lái)。
運(yùn)行效果:
二、用API函數(shù)來(lái)實(shí)現(xiàn)(可實(shí)現(xiàn)毫秒級(jí)的計(jì)時(shí)器)
要借用兩箇Windows 的API函數(shù):SetTimer和KillTimer
前者用於設(shè)置定時(shí)器,後者用於刪除定時(shí)器
Private Declare Function SetTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long, _ ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
聲明lTimerID用於存放定時(shí)器的ID
Public lngTimerID As Long
啟動(dòng)定時(shí)器,IDuration是定時(shí)器觸髮的時(shí)間,單位爲(wèi)毫秒
Sub StartTimer(lDuration As Long) ' 如果定時(shí)器不存在,則設(shè)置定時(shí)器,定時(shí)器觸髮的時(shí)間爲(wèi)IDuration,定時(shí)器觸髮後執(zhí)行OnTime If lngTimerID = 0 Then lngTimerID = SetTimer(0&, 0&, lDuration, AddressOf OnTime) ' 否則停止定時(shí)器,併設(shè)置一箇新的定時(shí)器 Else Call StopTimer lngTimerID = SetTimer(0&, 0&, lDuration, AddressOf OnTime) End If End Sub
停止定時(shí)器的函數(shù)
Sub StopTimer() KillTimer 0&, lngTimerID End Sub
OnTime函數(shù)
Sub OnTime()
' 計(jì)時(shí)器觸髮後運(yùn)行的代碼放在這
Debug.Print "計(jì)時(shí)器定時(shí)執(zhí)行瞭!"
End Sub
三、相關(guān)知識(shí):
Application的OnTime函數(shù)
安排一箇過(guò)程在將來(lái)的特定時(shí)間運(yùn)行(旣可以是具體指定的某箇時(shí)間,也可以是指定的一段時(shí)間之後)。
錶達(dá)式.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
錶達(dá)式 一箇代錶 Application 對(duì)象的變量。
蔘數(shù)
名稱(chēng) |
必需/可選 |
數(shù)據(jù)類(lèi)型 |
説明 |
---|---|---|---|
EarliestTime |
必需 |
Variant |
希望此過(guò)程運(yùn)行的時(shí)間。 |
Procedure |
必需 |
String |
要運(yùn)行的過(guò)程名。 |
LatestTime |
可選 |
Variant |
過(guò)程開(kāi)始運(yùn)行的最晚時(shí)間。例如,如果 LatestTime 蔘數(shù)設(shè)置爲(wèi) EarliestTime + 30,且當(dāng)?shù)竭_(dá)EarliestTime 時(shí)間時(shí),由於其他過(guò)程處?kù)哆\(yùn)行狀態(tài)而導(dǎo)緻 Microsoft Excel 不能處?kù)丁熬途w”、“複製”、“剪切”或“查找”模式,則 Microsoft Excel 將等待 30 秒讓第一箇過(guò)程先完成。如果 Microsoft Excel 不能在 30 秒內(nèi)迴到“就緒”模式,則不運(yùn)行此過(guò)程。如果省略該蔘數(shù),Microsoft Excel 將一直等待到可以運(yùn)行該過(guò)程爲(wèi)止。 |
Schedule |
可選 |
Variant |
如果爲(wèi) True,則預(yù)定一箇新的 OnTime 過(guò)程。如果爲(wèi) False,則清除先前設(shè)置的過(guò)程。默認(rèn)值爲(wèi)True。 |
本示例設(shè)置從現(xiàn)在開(kāi)始 15 秒後運(yùn)行 my_Procedure。
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
本示例設(shè)置 my_Procedure 在下午 5 點(diǎn)開(kāi)始運(yùn)行。
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
本示例撤消前一箇示例對(duì) OnTime 的設(shè)置。
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _ Procedure:="my_Procedure", Schedule:=False
相關(guān)文章:
VBA繫列講座(7):如何在Excel裡使用定時(shí)器
Access計(jì)時(shí)器Timer與VB計(jì)時(shí)器Timer的區(qū)彆
- office課程播放地址及課程明細(xì)
- Excel Word PPT Access VBA等Office技巧學(xué)習(xí)平颱
- 將( .accdb) 文件格式數(shù)據(jù)庫(kù)轉(zhuǎn)換爲(wèi)早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫(kù)文件格式(.mdb)轉(zhuǎn)換爲(wèi) (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫(kù)引擎和訪問(wèn)連接引擎以阻止對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的訪問(wèn)(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫(kù)中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動(dòng)宏時(shí))
- Access Runtime(運(yùn)行時(shí))最全的下載(2007 2010 2013 2016 2019 Access 365)
- access vba代碼太長(zhǎng),換行,分行的寫(xiě)法
- VB6 VBA Access真正可用併且完美支持中英文的 URLEncode 與 URLDecode 函數(shù)源碼
- 自定義VB中的urlencode函數(shù),將URL中特殊部分進(jìn)行編碼
- Access 函數(shù)簡(jiǎn)化串接sql字符串,減少符號(hào)導(dǎo)緻的書(shū)寫(xiě)錯(cuò)誤
- vba完全關(guān)閉IE瀏覽器及調(diào)用IE瀏覽器的簡(jiǎn)單應(yīng)用
- 利用FollowHyperlink方法打開(kāi)超鏈接提示“無(wú)法下載您要求的信息”的解決方案
- 在access中用代碼打開(kāi)文本框中超鏈接地址
- Activex控件或Dll 在某些電腦無(wú)法正常註冊(cè)的解決辦法(regsvr32註冊(cè)時(shí)卡?。?/a>
- office使用部分控件時(shí)提示“您沒(méi)有使用該ActiveX控件許可的問(wèn)題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹(shù)控件(treeview) 64位Office下齣現(xiàn)橫曏滾動(dòng)條不會(huì)自動(dòng)定位的解決辦法
- Access中國(guó)樹(shù)控件 在win10電腦 節(jié)點(diǎn)行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹(shù)控件 ListView列錶等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調(diào)用WebService(直接Post方式)併解析返迴的XML
- 早期PB程序連接Sqlserver齣現(xiàn)錯(cuò)誤
- MMC 不能打開(kāi)文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由於文件不存在,不是一箇MMC控製颱,或者用後來(lái)的MMC版
- sql server連接不瞭的解決辦法
- localhost與127.0.0.1區(qū)彆
- Roych的淺談數(shù)據(jù)庫(kù)開(kāi)髮繫列(Sql Server)
- sqlserver 自動(dòng)備份對(duì)備份目録沒(méi)有存取權(quán)限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
- 金蝶KIS旂艦版 登録時(shí)“類(lèi)型不匹配”
- access行業(yè)交流QQ群-部分行業(yè)交流群(倉(cāng)庫(kù) 人事 工資 考勤 CRM HRM MRP ERP 等)
- access垃圾分類(lèi)數(shù)據(jù)庫(kù)
- Office提高企業(yè)辦公管理效率
- Access交流網(wǎng)Acccess通用開(kāi)髮平颱樹(shù)導(dǎo)航齣錯(cuò)的解決辦法
- Access交流網(wǎng)Access通用開(kāi)髮平颱的使用幫助教程及FAQ
- Access採(cǎi)購(gòu)倉(cāng)庫(kù)繫統(tǒng)作品源代碼
聯(lián)繫人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |