先插一句啊,本人代寫(xiě)VBA代碼程序,詳情咨詢(xún)QQ:546039945 正文開(kāi)始前,還是廣告,掃一掃二維碼,正版視頻教材和30本電子教材全部擁有!趕緊行動(dòng)??! 注:視頻在手機(jī)上不顯示,如需查看請(qǐng)?jiān)陔娔X上輸入:https://item.taobao.com/item.htm?id=521212444712 066 Excel中的“定時(shí)器” Excel VBA并沒(méi)有提供定時(shí)器控件,但是用戶(hù)可以通過(guò)Application對(duì)象的OnTime方法實(shí)現(xiàn)簡(jiǎn)單的定時(shí)器功能,如下面的代碼所示。 Sub StartTimer() Sheet1.Cells(1,2) = Sheet1.Cells(1,2) + 1 Application.OnTimeNow + TimeValue('00:00:01'),'StartTimer' End Sub 代碼解析: StartTimer過(guò)程,使用Application對(duì)象的OnTime方法循環(huán)調(diào)用StartTimer過(guò)程實(shí)現(xiàn)每隔一秒鐘運(yùn)行一次StartTimer過(guò)程,從而在B1單元格中不斷地顯示程序累計(jì)運(yùn)行時(shí)間。 第2行代碼將B1單元格的值在原有的數(shù)字上加1。 第3行代碼使用OnTime方法在1秒后重新調(diào)用StartTimer過(guò)程,使B1單元格的值不斷的加1,從而顯示程序累計(jì)運(yùn)行時(shí)間。 應(yīng)用于Application對(duì)象的OnTime方法能夠安排一個(gè)過(guò)程在將來(lái)的特定時(shí)間運(yùn)行,語(yǔ)法如下: expression.OnTime(EarliestTime,Procedure,LatestTime,Schedule) 參數(shù)expression是必需的,返回一個(gè)Application對(duì)象。 參數(shù)EarliestTime是必需的,設(shè)置指定的過(guò)程開(kāi)始運(yùn)行的時(shí)間。使用Now + TimeValue(time)可以安排從現(xiàn)在開(kāi)始經(jīng)過(guò)一段時(shí)間之后運(yùn)行某個(gè)過(guò)程,使用TimeValue(time)可以安排在指定的時(shí)間運(yùn)行某個(gè)過(guò)程。 參數(shù)Procedure是必需的,設(shè)置要運(yùn)行的過(guò)程名稱(chēng)。 參數(shù)LatestTime是可選的,設(shè)置過(guò)程開(kāi)始運(yùn)行的最晚時(shí)間。例如將參數(shù)LatestTime設(shè)置為EarliestTime+10,當(dāng)時(shí)間到了EarliestTime時(shí)如果Excel不處于空閑狀態(tài),那么Excel將等待10秒,如果在10秒內(nèi)Excel不能回到空閑狀態(tài),則不運(yùn)行該過(guò)程。如果省略該參數(shù),Excel將一直等待到可以運(yùn)行該過(guò)程為止。 參數(shù)Schedule是可選的,如果其值為True(默認(rèn)值),則安排一個(gè)新的OnTime過(guò)程,如果其值為False,則清除先前設(shè)置的過(guò)程。 取消定時(shí)的代碼如下: Sub EndTimer() On ErrorGoTo Line Application.OnTimeNow + TimeValue('00:00:01'),'StartTimer',,False Sheet1.Cells(1,2) = 0 ExitSub Line: MsgBox'請(qǐng)先按[開(kāi)始]按鈕!' End Sub 代碼解析: EndTimer過(guò)程取消StartTimer過(guò)程的定時(shí)。 第2行代碼錯(cuò)誤處理語(yǔ)句,因?yàn)槿绻€沒(méi)有運(yùn)行StartTimer過(guò)程而先運(yùn)行EndTimer過(guò)程取消定時(shí),程序會(huì)提示錯(cuò)誤,,因此使用On Error GoTo Line語(yǔ)句在錯(cuò)誤發(fā)生時(shí)執(zhí)行第7行代碼顯示一個(gè)提示消息框。
▲067 設(shè)置活動(dòng)打印機(jī)的名稱(chēng) 使用Application 對(duì)象的ActivePrinter屬性可以設(shè)置活動(dòng)打印機(jī)的名稱(chēng),如下面的代碼所示。 Sub myPrinter() DimmyPrinter As String myPrinter= 'HP LaserJet P1008 在 Ne04:' Application.ActivePrinter= myPrinter MsgBox'活動(dòng)打印機(jī)為:' & Left(myPrinter,InStr(myPrinter,'在') - 1) End Sub 代碼解析: myPrinter過(guò)程將活動(dòng)打印機(jī)設(shè)置為“HP LaserJet P1008”。 第3行代碼指定需要設(shè)置為活動(dòng)打印機(jī)的名稱(chēng),第4行代碼通過(guò)設(shè)置Application 對(duì)象的ActivePrinter屬性將活動(dòng)打印機(jī)設(shè)置為“HP LaserJet P1008”。 第5行代碼使用消息框顯示活動(dòng)打印機(jī)的名稱(chēng)及型號(hào)。
▲068 屏蔽、改變組合鍵的功能 使用Application 對(duì)象的OnKey方法可以屏蔽或改變組合鍵的默認(rèn)操作,如下面的代碼所示。 Private Sub Workbook_Open() Application.OnKey'^{c}','myOnKey' End Sub Sub myOnKey() MsgBox'本工作表禁止復(fù)制數(shù)據(jù)!' End Sub 代碼解析: 第1行到第3行代碼工作簿的Open事件,在工作簿打開(kāi)時(shí)使用OnKey方法改變<Ctrl+C>組合鍵的功能。 應(yīng)用于Application 對(duì)象的OnKey方法指定特定鍵或特定的組合鍵運(yùn)行的過(guò)程,語(yǔ)法如下: expression.OnKey(Key,Procedure) 參數(shù)expression是必需的,該表達(dá)式返回一個(gè)Application對(duì)象。 參數(shù)Key是必需的,用于表示要按的鍵的字符串,具體請(qǐng)參閱VBA中的幫助。 參數(shù)Procedure是可選的,表示要運(yùn)行的過(guò)程名稱(chēng)的字符串,本示例中將過(guò)程名稱(chēng)指定為第4行到第6行代碼的“myOnKey”過(guò)程,當(dāng)按下<Ctrl +C>組合鍵時(shí)并不會(huì)執(zhí)行復(fù)制操作而只顯示一個(gè)消息框。如果將Procedure參數(shù)指定為空文本(““),則按<Ctrl +C>組合鍵時(shí)不發(fā)生任何操作,達(dá)到屏蔽組合鍵的效果。 如果省略Procedure參數(shù),則按下<Ctrl+C>組合鍵時(shí)產(chǎn)生Microsoft Excel中的正常結(jié)果,同時(shí)清除先前使用OnKey方法所做的特殊擊鍵設(shè)置,所以恢復(fù)<Ctrl +C>組合鍵的代碼如下: Application.OnKey'^{c}' 為了不影響其他工作簿的功能,恢復(fù)代碼就放在工作簿的Deactivate事件中,如下面的代碼所示: Private Sub Workbook_Deactivate() Application.OnKey'^{c}' End Sub 代碼解析: 當(dāng)工作簿從活動(dòng)狀態(tài)轉(zhuǎn)為非活動(dòng)狀態(tài)時(shí)恢復(fù)<Ctrl +C>組合鍵的正常功能。
▲069 設(shè)置Excel窗口標(biāo)題欄 Excel主窗口標(biāo)題欄默認(rèn)的名稱(chēng)是“Microsoft Excel”,通過(guò)設(shè)置Application對(duì)象的Caption屬性可以改變Excel主窗口的標(biāo)題欄,如下面的代碼所示。 Sub AppCaption() Application.Caption= '修改標(biāo)題欄名稱(chēng)' MsgBox'下面將恢復(fù)默認(rèn)的標(biāo)題欄名稱(chēng)!' Application.Caption= Empty End Sub 代碼解析: 第2行代碼將Excel窗口標(biāo)題設(shè)置為“修改標(biāo)題欄名稱(chēng)”。 應(yīng)用于Application對(duì)象的Caption屬性設(shè)置顯示在Microsoft Excel主窗口標(biāo)題欄中的名稱(chēng),語(yǔ)法如下: expression.Caption 第3行代碼恢復(fù)MicrosoftExcel主窗口標(biāo)題欄中的名稱(chēng)。如果未設(shè)置Caption屬性(““)或?qū)⑵湓O(shè)置為Empty(表示未初始化的變量值),則本屬性返回“MicrosoftExcel”。 將Caption屬性設(shè)置為常數(shù)vbNullChar(表示值為 0 的字符)可以刪除標(biāo)題欄中的名稱(chēng),如下面的代碼所示。 Sub DleCaption() Application.Caption= vbNullChar MsgBox'下面將恢復(fù)默認(rèn)的標(biāo)題欄名稱(chēng)!' Application.Caption=““ End Sub 代碼解析: 第2行代碼刪除Excel主窗口標(biāo)題欄,
▲070 自定義Excel狀態(tài)欄 Excel狀態(tài)欄顯示應(yīng)用程序的當(dāng)前狀態(tài)(例如就緒、輸入等)或上下文提示信息,通過(guò)設(shè)置Application對(duì)象的Statusbar屬性可以修改狀態(tài)欄,以顯示用戶(hù)自定義的信息,代碼如下: Sub myStatusBar() Dimrng As Range ForEach rng In Sheet1.Range('A1:D10000') Application.StatusBar = '正在計(jì)算單元格 ' & rng.Address(0,0) & ' 的數(shù)據(jù)...' rng = 100 Next Application.StatusBar= False End Sub 代碼解析: myStatusBar過(guò)程在給選定單元格區(qū)域賦值的同時(shí),將Excel狀態(tài)欄中的文字設(shè)置為正在賦值的單元格地址。 應(yīng)用于Application對(duì)象的StatusBar屬性返回或設(shè)置狀態(tài)欄中的文字,如果需要恢復(fù)默認(rèn)的狀態(tài)欄文字,將本屬性設(shè)為False即可。 |
|
來(lái)自: wdmexcel > 《Excel Vba》