版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、VBA常用技巧目錄 VBA常用技巧1第5章Application對象2技巧1取得Excel版本信息2技巧2取得當(dāng)前用戶名稱3技巧3Excel中的“定時(shí)器”3技巧4設(shè)置活動(dòng)打印機(jī)的名稱5技巧5屏蔽、改變組合鍵的功能6技巧6設(shè)置Excel窗口標(biāo)題欄7技巧7自定義Excel狀態(tài)欄8技巧8靈活退出Excel9技巧9隱藏Excel主窗口109-1設(shè)置Application對象的Visible屬性109-2將窗口移出屏幕119-3設(shè)置工作簿作為加載宏運(yùn)行12第5章 Application對象技巧1 取得Excel版本信息Application對象的Version屬性可以返回Excel的版本號(hào),如下面的代碼
2、所示。#001 Sub AppVersion()#002 Dim myVersion As String#003 Select Case Application.Version#004 Case 8.0#005 myVersion = 97#006 Case 9.0#007 myVersion = 2000#008 Case 10.0#009 myVersion = 2002#010 Case 11.0#011 myVersion = 2003#012 Case Else#013 myVersion = 版本未知#014 End Select#015 MsgBox Excel 版本是: & m
3、yVersion#016 End Sub代碼解析:AppVersion過程返回Application對象的Version屬性值來取得Excel版本號(hào)。應(yīng)用于Application對象的Version屬性返回Excel版本號(hào),語法如下:expression.Version參數(shù)expression是必需的,Application對象。運(yùn)行AppVersion過程結(jié)果如Error! Reference source not found.所示。圖 11取得Excel版本號(hào)技巧2 取得當(dāng)前用戶名稱使用Application對象的UserName屬性可以取得當(dāng)前用戶名稱,如下面的代碼所示。Sub User
4、Name() MsgBox 當(dāng)前用戶名是: & Application.UserNameEnd Sub代碼解析:UserName過程使用消息框顯示當(dāng)前用戶名稱。Application對象的UserName屬性返回或設(shè)置當(dāng)前用戶的名稱。運(yùn)行UserName過程效果如Error! Reference source not found.所示。圖 21顯示當(dāng)前用戶名稱技巧3 Excel中的“定時(shí)器”Excel VBA并沒有提供定時(shí)器控件,但是用戶可以通過Application對象的OnTime方法實(shí)現(xiàn)簡單的定時(shí)器功能,如下面的代碼所示。#001 Sub StartTimer()#002 Sheet1.
5、Cells(1, 2) = Sheet1.Cells(1, 2) + 1#003 Application.OnTime Now + TimeValue(00:00:01), StartTimer#004 End Sub代碼解析:StartTimer過程,使用Application對象的OnTime方法循環(huán)調(diào)用StartTimer過程實(shí)現(xiàn)每隔一秒鐘運(yùn)行一次StartTimer過程,從而在B1單元格中不斷地顯示程序累計(jì)運(yùn)行時(shí)間,如Error! Reference source not found.所示。圖 31簡單的定時(shí)器第2行代碼將B1單元格的值在原有的數(shù)字上加1。第3行代碼使用OnTime方法
6、在1秒后重新調(diào)用StartTimer過程,使B1單元格的值不斷的加1,從而顯示程序累計(jì)運(yùn)行時(shí)間。應(yīng)用于Application對象的OnTime方法能夠安排一個(gè)過程在將來的特定時(shí)間運(yùn)行,語法如下: expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)參數(shù)expression是必需的,返回一個(gè)Application對象。參數(shù)EarliestTime是必需的,設(shè)置指定的過程開始運(yùn)行的時(shí)間。使用Now + TimeValue(time)可以安排從現(xiàn)在開始經(jīng)過一段時(shí)間之后運(yùn)行某個(gè)過程,使用TimeValue(time)可以安排在
7、指定的時(shí)間運(yùn)行某個(gè)過程。參數(shù)Procedure是必需的,設(shè)置要運(yùn)行的過程名稱。參數(shù)LatestTime是可選的,設(shè)置過程開始運(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)行該過程。如果省略該參數(shù),Excel將一直等待到可以運(yùn)行該過程為止。參數(shù)Schedule是可選的,如果其值為True(默認(rèn)值),則安排一個(gè)新的OnTime過程,如果其值為False,則清除先前設(shè)置的過程。取消定時(shí)的代碼如下:#001 Sub EndT
8、imer()#002 On Error GoTo Line#003 Application.OnTime Now + TimeValue(00:00:01), StartTimer, , False#004 Sheet1.Cells(1, 2) = 0#005 Exit Sub#006 Line:#007 MsgBox 請先按開始按鈕!#008 End Sub代碼解析:EndTimer過程取消StartTimer過程的定時(shí)。第2行代碼錯(cuò)誤處理語句,因?yàn)槿绻€沒有運(yùn)行StartTimer過程而先運(yùn)行EndTimer過程取消定時(shí),程序會(huì)提示錯(cuò)誤,如Error! Reference source n
9、ot found.所示,因此使用On Error GoTo Line語句在錯(cuò)誤發(fā)生時(shí)執(zhí)行第7行代碼顯示一個(gè)如Error! Reference source not found.所示的提示消息框。圖 32運(yùn)行錯(cuò)誤圖 33提示消息框第3行代碼將StartTimer過程的Schedule參數(shù)設(shè)置為False,取消定時(shí)設(shè)置。技巧4 設(shè)置活動(dòng)打印機(jī)的名稱使用Application 對象的ActivePrinter屬性可以設(shè)置活動(dòng)打印機(jī)的名稱,如下面的代碼所示。#001 Sub myPrinter()#002 Dim myPrinter As String#003 myPrinter = HP Laser
10、Jet P1008 在 Ne04:#004 Application.ActivePrinter = myPrinter#005 MsgBox 活動(dòng)打印機(jī)為: & Left(myPrinter, InStr(myPrinter, 在) - 1)#006 End Sub代碼解析:myPrinter過程將活動(dòng)打印機(jī)設(shè)置為“HP LaserJet P1008”。第3行代碼指定需要設(shè)置為活動(dòng)打印機(jī)的名稱,第4行代碼通過設(shè)置Application 對象的ActivePrinter屬性將活動(dòng)打印機(jī)設(shè)置為“HP LaserJet P1008”。第5行代碼使用消息框顯示活動(dòng)打印機(jī)的名稱及型號(hào)。運(yùn)行myPrint
11、er過程結(jié)果如Error! Reference source not found.所示。圖 41設(shè)置活動(dòng)打印機(jī)技巧5 屏蔽、改變組合鍵的功能使用Application 對象的OnKey方法可以屏蔽或改變組合鍵的默認(rèn)操作,如下面的代碼所示。#001 Private Sub Workbook_Open()#002 Application.OnKey c, myOnKey#003 End Sub#004 Sub myOnKey()#005 MsgBox 本工作表禁止復(fù)制數(shù)據(jù)!#006 End Sub代碼解析:第1行到第3行代碼工作簿的Open事件,在工作簿打開時(shí)使用OnKey方法改變組合鍵的功能。應(yīng)
12、用于Application 對象的OnKey方法指定特定鍵或特定的組合鍵運(yùn)行的過程,語法如下:expression.OnKey(Key, Procedure)參數(shù)expression是必需的,該表達(dá)式返回一個(gè)Application 對象。參數(shù)Key是必需的,用于表示要按的鍵的字符串,具體請參閱VBA中的幫助。參數(shù)Procedure是可選的,表示要運(yùn)行的過程名稱的字符串,本示例中將過程名稱指定為第4行到第6行代碼的“myOnKey”過程,當(dāng)按下組合鍵時(shí)并不會(huì)執(zhí)行復(fù)制操作而只顯示一個(gè)消息框。如果將Procedure參數(shù)指定為空文本(),則按組合鍵時(shí)不發(fā)生任何操作,達(dá)到屏蔽組合鍵的效果。如果省略Pr
13、ocedure參數(shù),則按下組合鍵時(shí)產(chǎn)生Microsoft Excel中的正常結(jié)果,同時(shí)清除先前使用OnKey方法所做的特殊擊鍵設(shè)置,所以恢復(fù)組合鍵的代碼如下:Application.OnKey c為了不影響其他工作簿的功能,恢復(fù)代碼就放在工作簿的Deactivate事件中,如下面的代碼所示:#001 Private Sub Workbook_Deactivate()#002 Application.OnKey c#003 End Sub代碼解析:當(dāng)工作簿從活動(dòng)狀態(tài)轉(zhuǎn)為非活動(dòng)狀態(tài)時(shí)恢復(fù)組合鍵的正常功能。技巧6 設(shè)置Excel窗口標(biāo)題欄Excel主窗口標(biāo)題欄默認(rèn)的名稱是“Microsoft Exc
14、el”,通過設(shè)置Application對象的Caption屬性可以改變Excel主窗口的標(biāo)題欄,如下面的代碼所示。#001 Sub AppCaption()#002 Application.Caption = 修改標(biāo)題欄名稱#003 MsgBox 下面將恢復(fù)默認(rèn)的標(biāo)題欄名稱!#004 Application.Caption = Empty#005 End Sub代碼解析:第2行代碼將Excel窗口標(biāo)題設(shè)置為“修改標(biāo)題欄名稱”,如Error! Reference source not found.所示。圖 61設(shè)置Excel窗口標(biāo)題應(yīng)用于Application對象的Caption屬性設(shè)置顯示在M
15、icrosoft Excel主窗口標(biāo)題欄中的名稱,語法如下:expression.Caption第3行代碼恢復(fù)Microsoft Excel主窗口標(biāo)題欄中的名稱。如果未設(shè)置Caption屬性()或?qū)⑵湓O(shè)置為Empty(表示未初始化的變量值),則本屬性返回默認(rèn)的“Microsoft Excel”。將Caption屬性設(shè)置為常數(shù)vbNullChar(表示值為 0 的字符)可以刪除標(biāo)題欄中的名稱,如下面的代碼所示。#001 Sub DleCaption()#002 Application.Caption = vbNullChar#003 MsgBox 下面將恢復(fù)默認(rèn)的標(biāo)題欄名稱!#004 Appli
16、cation.Caption =Empty#005 End Sub代碼解析:第2行代碼刪除Excel主窗口標(biāo)題欄,結(jié)果如Error! Reference source not found.所示。圖 62刪除Excel窗口標(biāo)題欄的名稱技巧7 自定義Excel狀態(tài)欄Excel狀態(tài)欄顯示應(yīng)用程序的當(dāng)前狀態(tài)(例如就緒、輸入等)或上下文提示信息,通過設(shè)置Application對象的Statusbar屬性可以修改狀態(tài)欄,以顯示用戶自定義的信息,代碼如下:#001 Sub myStatusBar()#002 Dim rng As Range#003 For Each rng In Sheet1.Range(
17、A1:D10000)#004 Application.StatusBar = 正在計(jì)算單元格 & rng.Address(0, 0) & 的數(shù)據(jù).#005 rng = 100#006 Next#007 Application.StatusBar = False#008 End Sub代碼解析:myStatusBar過程在給選定單元格區(qū)域賦值的同時(shí),將Excel狀態(tài)欄中的文字設(shè)置為正在賦值的單元格地址。應(yīng)用于Application對象的StatusBar屬性返回或設(shè)置狀態(tài)欄中的文字,如果需要恢復(fù)默認(rèn)的狀態(tài)欄文字,將本屬性設(shè)為False即可。運(yùn)行myStatusBar過程Excel狀態(tài)欄如Erro
18、r! Reference source not found.所示。圖 71自定義Excel狀態(tài)欄技巧8 靈活退出Excel在使用Close方法關(guān)閉工作簿時(shí),既使當(dāng)前只有一個(gè)打開的工作簿,也只能關(guān)閉工作簿而不能關(guān)閉Excel程序,而使用Application對象的Quit方法則會(huì)關(guān)閉所有打開的工作簿,下面的代碼可以做到兩者兼顧。#001 Sub myQuit()#002 If Workbooks.Count 1 Then#003 ThisWorkbook.Close#004 Else#005 Application.Quit#006 End If#007 End Sub代碼解析:myQuit過程
19、在關(guān)閉Excel程序時(shí)根據(jù)當(dāng)前打開的工作簿數(shù)量決定采用何種方法關(guān)閉工作簿。第2行代碼使用Workbook集合的Count屬性判斷當(dāng)前打開的工作簿文件數(shù)量。第3行代碼如當(dāng)前打開兩個(gè)或兩個(gè)以上工作簿,使用Close方法關(guān)閉代碼所在的工作簿。關(guān)于Close方法請參閱技巧Error! Reference source not found.。第5行代碼如果當(dāng)前只有一個(gè)打開的工作簿文件則使用Quit方法關(guān)閉Excel程序。應(yīng)用于Application對象的Quit方法退出Excel程序,語法如下:expression.Quit參數(shù)expression是必需的,返回一個(gè)Application對象。使用Qui
20、t方法關(guān)閉Excel程序時(shí),如果有未保存的工作簿處于打開狀態(tài),則將彈出一個(gè)詢問是否要保存所作更改的對話框,為避免對話框出現(xiàn),可在使用Quit方法前保存所有的工作簿,或者將Application對象的DisplayAlerts屬性設(shè)置為False,在退出Excel程序時(shí),即使有未保存的工作簿,也不會(huì)顯示對話框,而且不保存就退出。如果一個(gè)工作簿的Saved屬性值為True,但是并沒有將工作簿保存到磁盤上,則Excel程序在退出時(shí)不會(huì)提示保存該工作簿。技巧9 隱藏Excel主窗口如果希望在程序啟動(dòng)時(shí)或運(yùn)行過程中隱藏Excel主窗口,有以下幾種實(shí)現(xiàn)方法。9-1 設(shè)置Application對象的Visi
21、ble屬性當(dāng)Application對象的Visible屬性設(shè)置為False時(shí),Application對象不可見,即能隱藏Excel主窗口,如下面的代碼所示。#001 Private Sub Workbook_Open()#002 Application.Visible = False#003 UserForm1.Show#004 End Sub代碼解析:代碼工作簿的Open事件,在工作簿打開時(shí)將Application對象的Visible屬性設(shè)置為False隱藏Excel主窗口。顯示Excel主窗口的方法是將Application對象的Visible屬性重新設(shè)置為True。當(dāng)工作簿文件打開時(shí),隱
22、藏Excel主窗口,只顯示用戶登錄窗體,如Error! Reference source not found.所示。圖 91隱藏Excel主窗口9-2 將窗口移出屏幕設(shè)置Application對象的Left屬性(從屏幕左邊界至Microsoft Excel主窗口左邊界的距離)和/或Top屬性(從屏幕頂端到Microsoft Excel主窗口頂端的距離)將Application對象移出屏幕外,實(shí)現(xiàn)隱藏Excel主窗口,如下面的代碼所示。#001 Private Sub Workbook_Open()#002 Application.WindowState = xlNormal#003 Application.Left = 10000#004 UserForm1.StartUpPosition = 2#005 UserForm1.Show#006 End Sub代碼解析:工作簿的Open事件過程,設(shè)置Application對象的Left屬性為一個(gè)大的數(shù)值,從而將應(yīng)用程序窗口移出屏幕。第2行代碼將應(yīng)用程序窗口設(shè)置為正常狀態(tài),只有當(dāng)應(yīng)用程序窗口正常顯示時(shí)才能夠設(shè)置A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度高端酒店芒果供應(yīng)與銷售合作協(xié)議4篇
- 二零二五版出租車行業(yè)車輛維修配件供應(yīng)協(xié)議3篇
- 二零二五年集裝箱貨物運(yùn)輸保險(xiǎn)合同2篇
- 2025年洗車場租賃與員工服務(wù)協(xié)議3篇
- 2025年度鋁合金門窗產(chǎn)品檢測與認(rèn)證服務(wù)合同4篇
- 二零二五年度旅游車輛租賃與景區(qū)娛樂項(xiàng)目合同4篇
- 二零二五年度國際科研合作項(xiàng)目合同簽訂與知識(shí)產(chǎn)權(quán)歸屬3篇
- 二零二五年度鋼結(jié)構(gòu)廠房建設(shè)項(xiàng)目節(jié)能減排合同范本3篇
- 2025年水田承包權(quán)流轉(zhuǎn)與農(nóng)業(yè)產(chǎn)業(yè)鏈合作合同3篇
- 2025年度鋁材再生利用合作協(xié)議4篇
- AQ/T 2061-2018 金屬非金屬地下礦山防治水安全技術(shù)規(guī)范(正式版)
- 2024年湖北三江航天江河化工科技有限公司招聘筆試沖刺題(帶答案解析)
- 采購人員管理制度
- 礦卡司機(jī)安全教育考試卷(帶答案)
- SYT 6963-2013 大位移井鉆井設(shè)計(jì)指南
- 合同增項(xiàng)補(bǔ)充協(xié)議書范本
- 產(chǎn)后抑郁癥的護(hù)理查房
- 五年級(jí)上冊數(shù)學(xué)脫式計(jì)算300題及答案
- 循環(huán)系統(tǒng)練習(xí)試題(含答案)
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 昭通土豆市場調(diào)研報(bào)告
評(píng)論
0/150
提交評(píng)論