小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VBA常用代碼解析(第十六講)

 wdmexcel 2015-08-21

先插一句啊,本人代寫(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(12) + 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(EarliestTimeProcedure,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(KeyProcedure)

參數(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即可。


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多