Quit 方法
退出 MicrosoftExcel。
說(shuō)明:
使用此方法時(shí),如果未保存的工作簿處于打開(kāi)狀態(tài),則 Microsoft Excel 將顯示一個(gè)對(duì)話(huà)框,詢(xún)問(wèn)是否要保存所作更改。
要防止發(fā)生這種情況,請(qǐng)?jiān)谑褂?Quit 方法前保存所有工作簿或?qū)?DisplayAlerts 屬性設(shè)置為 False。
如果該屬性為 False,則在 Microsoft Excel 退出時(shí),即使有未保存的工作簿,也不會(huì)顯示對(duì)話(huà)框,而且不保存就退出。
如果將工作簿的 Saved屬性設(shè)置為 True,而沒(méi)有將工作簿保存到磁盤(pán)上,在退出時(shí)不會(huì)提示保存該工作簿。
示例1:
ThisWorkbook.Saved= True
Workbooks.Add
ActiveWorkbook.Saved= True
Application.Quit
示例2:
Application.DisplayAlerts= False
Workbooks.Add
Application.Quit
OnKey 方法
當(dāng)按特定鍵或特定的組合鍵時(shí)運(yùn)行指定的過(guò)程。
語(yǔ)法:OnKey(Key,Procedure)
Key 必選 String 表示要按的鍵的字符串。 Procedure 可選,表示要運(yùn)行的過(guò)程名稱(chēng)的字符串。
如果 Procedure 為空文本(""),則按 Key 時(shí)不發(fā)生任何操作。
該格式的 OnKey 將更改指定鍵在 Microsoft Excel 中產(chǎn)生的正常結(jié)果。
如果省略Procedure 參數(shù),則 Key 恢復(fù)為 Microsoft Excel 中的正常結(jié)果,
同時(shí)清除先前使用 OnKey 方法所做的特殊鍵擊設(shè)置。 說(shuō)明:
Key 參數(shù)可指定任何與 Alt、Ctrl 或 Shift 組合使用的鍵,還可以指定這些鍵的任何組合。
每一個(gè)鍵可由一個(gè)或多個(gè)字符表示,比如 "a" 表示字符 a,"{ENTER}" 表示 Enter。 若要指定按對(duì)應(yīng)的鍵(例如Enter 或 Tab)時(shí)的非顯示字符,請(qǐng)使用下表所列出的代碼。
Backspace {BACKSPACE} 或 {BS}
Break {BREAK}
Caps Lock {CAPSLOCK}
Clear {CLEAR}
Delete 或 Del {DELETE} 或 {DEL}
向下鍵 {DOWN}
End {END}
Enter(數(shù)字小鍵盤(pán)) {ENTER}
Enter ~(波形符)
Esc {ESCAPE} 或 {ESC}
Help {HELP}
Home {HOME}
Ins {INSERT}
向左鍵 {LEFT}
Num Lock {NUMLOCK}
PageDown {PGDN}
PageUp {PGUP}
Return {RETURN}
向右鍵 {RIGHT}
Scroll Lock {SCROLLLOCK}
Tab {TAB}
向上鍵 {UP}
F1 到 F15 {F1} 到 {F15}
還可指定與 Shift 和/或 Ctrl 和/或 Alt 組合使用的鍵。
若要指定與其他鍵組合使用的鍵,可在鍵代碼之前添加相就對(duì)應(yīng)的符號(hào):
Shift +(加號(hào))
Ctrl ^(插入符號(hào))
Alt %(百分號(hào))
若為特定字符指定處理過(guò)程(如 +、^、% 等等),可將此字符用圓括號(hào)括起。
當(dāng)需要為特定的過(guò)程指定快捷鍵時(shí),可以用這個(gè)方法;
當(dāng)需要屏蔽Excel中某些快捷鍵時(shí),也可以用這個(gè)方法;
示例:
Sub noCtrlCVX()
Application.OnKey "^c", ""
'Procedure 為空文本 (""),
'則在Excel中按Ctrl+c時(shí)不發(fā)生任何操作(在VBE中還是有效的)
Application.OnKey "^v", "mysub"
'在Excel中按Ctrl+v時(shí),執(zhí)行mysub過(guò)程
Application.OnKey "^x", "mysub"
'在Excel中按Ctrl+x時(shí),執(zhí)行mysub過(guò)程
End Sub
Sub mysub()
MsgBox "禁止復(fù)制,剪切快捷鍵"
End Sub
Sub CtrlCVX()
'恢復(fù)Ctrl+c,Ctrl+v,Ctrl+x三個(gè)快捷鍵在Excel中原有的功能
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "^x"
End Sub
注意一點(diǎn),以上代碼要求放入一個(gè)標(biāo)準(zhǔn)模塊中,方可正常運(yùn)行。
OnTime 方法
安排一個(gè)過(guò)程在將來(lái)的特定時(shí)間運(yùn)行。
?。瓤梢允蔷唧w指定的某個(gè)時(shí)間,也可以是指定的一段時(shí)間之后)。
語(yǔ)法:
OnTime(EarliestTime, Procedure, LatestTime,Schedule)
EarliestTime 必選,希望此過(guò)程運(yùn)行的時(shí)間。
Procedure 必選,要運(yùn)行的過(guò)程名。
LatestTime 可選,過(guò)程開(kāi)始運(yùn)行的最晚時(shí)間。
例如,如果 LatestTime 參數(shù)設(shè)置為 EarliestTime + 30,且當(dāng)?shù)竭_(dá) EarliestTime 時(shí)間時(shí),
由于其他過(guò)程處于運(yùn)行狀態(tài)而導(dǎo)致 Microsoft Excel 不能處于“就緒”、“復(fù)制”、“剪切”或“查找”模式,
則將等待 30 秒讓第一個(gè)過(guò)程先完成。
如果 Microsoft Excel 不能在 30 秒內(nèi)回到“就緒”模式,則不運(yùn)行此過(guò)程。
如果省略該參數(shù),Microsoft Excel 將一直等待到可以運(yùn)行該過(guò)程為止。
Schedule 可選, 如果為 True,則預(yù)定一個(gè)新的OnTime 過(guò)程。
如果為 False,則清除先前設(shè)置的過(guò)程。默認(rèn)值為 True。
說(shuō)明:
使用 Now + TimeValue(time) 可安排經(jīng)過(guò)一段時(shí)間(從現(xiàn)在開(kāi)始計(jì)時(shí))之后運(yùn)行某個(gè)過(guò)程。
使用 TimeValue(time) 可安排某個(gè)過(guò)程只在指定的時(shí)間運(yùn)行。
示例:
Option Explicit
Dim t As Double
Sub test()
t= Now + TimeValue("00:00:10")
Application.OnTime t, "mysub"
'在當(dāng)前時(shí)間延后10秒運(yùn)行mysub過(guò)程
'沒(méi)有指定最晚運(yùn)行的時(shí)間,則會(huì)一直等待,直到運(yùn)行為止。
End Sub
Sub noOnTime()
On Error Resume Next
Application.OnTime t, "mysub", , False
'取消之前安排的過(guò)程
'要求時(shí)間,過(guò)程名都要一一對(duì)應(yīng),最后一個(gè)參數(shù)為False
'只要有時(shí)間和過(guò)程名參數(shù)有一個(gè)不對(duì),就會(huì)產(chǎn)生錯(cuò)誤
'1.過(guò)程名要與Ontime方法時(shí)指定的過(guò)程名相同
'2.時(shí)間要與Ontime方法時(shí)指定的時(shí)間相同,
'并且該時(shí)間內(nèi)的過(guò)程并沒(méi)有被執(zhí)行
End Sub
Sub mysub()
Application.StatusBar = "計(jì)劃運(yùn)行時(shí)間:" &Format(t, "hh:mm:ss")
'如果過(guò)程需要反復(fù)的執(zhí)行,可以在運(yùn)行過(guò)程結(jié)束前再次安排
t= Now + TimeValue("00:00:10")
Application.OnTime t, "mysub"
End Sub
注意一點(diǎn),以上代碼要求放入一個(gè)標(biāo)準(zhǔn)模塊中,方可正常運(yùn)行。