ExcelVBA編程150實(shí)例大全要點(diǎn)



《ExcelVBA編程150實(shí)例大全要點(diǎn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《ExcelVBA編程150實(shí)例大全要點(diǎn)(129頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 Excel VBA 編程實(shí)例 150 例 VBE 編輯器及 VBA 代碼輸入和調(diào)試的基本知識(shí) 在學(xué)習(xí)這些實(shí)例的過(guò)程中, 最好自已動(dòng)手將它們輸入到 VBE 編輯器中調(diào)試運(yùn)行, 來(lái)查看它們的結(jié)果。當(dāng)然,您可以偷賴(lài),將它們復(fù)制 /粘貼到代碼編輯窗口后, 進(jìn)行調(diào)試運(yùn)行。 下面,對(duì) VBE 編輯器界面進(jìn)行介紹, 并對(duì) VBA 代碼輸入和調(diào)試 的基本知識(shí)進(jìn)行簡(jiǎn)單的講解。 激活 VBE 編輯器 一般可以使用以下三種方式來(lái)打開(kāi) VBE 編輯器: ■ 使用工作表菜單 “工具 —— 宏—— Visual Basic 編輯器
2、”命令,如圖 00-01 所示; ■ 在 Visual Basic 工具欄上,按 “ VisualBasic 編輯器 ”按鈕,如圖 00-02 所示; ■ 按 Alt+F11 組合鍵。 圖 00-01 :選擇菜單 “工具 —— 宏—— Visual Basic 編輯器 ”命令來(lái)打開(kāi) VBE 編輯 器 圖 00-02 :
3、選擇 Visual Basic 工具欄上的 “Visual Basic 編輯器 ”命令按鈕來(lái)打開(kāi) 1 VBE 編輯器 此外,您也可以使用下面三種方式打開(kāi) VBE 編輯器: ■ 在任一工作表標(biāo)簽上單擊鼠標(biāo)右鍵, 在彈出的菜單中選擇 “查看代碼 ”,則可進(jìn)入 VBE 編輯器訪問(wèn)該工作表的代碼模塊,如圖 00-03 所示; ■ 在工作簿窗口左上角的 Excel 圖標(biāo)上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“查看代碼 ”,則可進(jìn)入 VBE 編輯器訪問(wèn)活動(dòng)工作簿的 ThisWorkbook 代碼模塊,如圖 00-04 所示; ■ 選擇菜單
4、“工具 —— 宏 —— 宏 ”命令打開(kāi)宏對(duì)話(huà)框,若該工作簿中有宏程序, 則單擊該對(duì)話(huà)框中的 “編輯 ”按鈕即可進(jìn)行 VBE 編輯器代碼模塊,如圖 00-05 所 示。 圖 00-03 :右擊工作表標(biāo)簽彈出菜單并選擇 “查看代碼 ”打開(kāi) VBE 編輯器 圖 00-04 :右擊 Excel 圖標(biāo)彈出菜單并選擇 “查看代碼 ”打開(kāi) VBE 編輯器
5、 2 圖 00-05 :在宏對(duì)話(huà)框中單擊 “編輯 ”按鈕打開(kāi) VBE 編輯器 VBE 編輯器窗口簡(jiǎn)介 剛打開(kāi) VBE 編輯器時(shí),所顯示的窗口如圖 00-06 所示,其中沒(méi)有代碼模塊窗口。
6、 3 圖 00-06 :剛打開(kāi) VBE 編輯器時(shí)的窗口 可以在 “工程資源管理器 ”中雙
7、擊任一對(duì)象打開(kāi)代碼窗口, 或者選擇菜單 “插入 —— 模塊 ”或 “插入 —— 類(lèi)模塊 ”來(lái)打開(kāi)代碼窗口。一般 VBE 編輯器窗口及各組成部件名稱(chēng)如圖 00-07 所示,可以通過(guò) “視圖 ”菜單中的菜單項(xiàng)選擇所出現(xiàn)的窗口。 同時(shí),可以在 “工程屬性 ”窗口中設(shè)置或修改相應(yīng)對(duì)象的屬性。 4
8、 圖 00-07 : VBE 編輯器窗口 下面是帶有用戶(hù)窗體的 VBE 編輯器窗口,如圖 00-08 所示。選擇 VBE 菜單 “插入 —— 用戶(hù)窗體 ”,即可插入一個(gè)用戶(hù)窗體。當(dāng)插入用戶(hù)窗體后,在 “工程資源管 5 理器 ”窗口中會(huì)出現(xiàn)一個(gè)用戶(hù)窗體對(duì)象, “工程屬性 ”窗口顯示當(dāng)前用戶(hù)窗體的屬性,可對(duì)相關(guān)屬性進(jìn)行設(shè)置或修改。 同時(shí),在用戶(hù)窗體上用鼠標(biāo)
9、單擊, 會(huì)出現(xiàn) “控件工具箱 ”。在“工程資源管理器 ”窗口雙擊用戶(hù)窗體圖標(biāo), 會(huì)出現(xiàn)相應(yīng)的用戶(hù)窗體;在用戶(hù)窗體圖標(biāo)或者是在用戶(hù)窗體上單擊鼠標(biāo)右鍵,然后在彈出的菜單中選擇“查看代碼 ”,則會(huì)出現(xiàn)用戶(hù)窗體代碼窗口。 圖 00-08
10、: VBE 編輯器窗口 (帶有用戶(hù)窗體 ) 在 VBE 編輯器中輸入 VBA 代碼 6 如前所述,您可以選擇 VBE 菜單 “插入 —— 用戶(hù)窗體 /模塊 /類(lèi)模塊 ”來(lái)插入模塊或用戶(hù)窗體以及相應(yīng)的代碼窗口。此外,您也可以在 “工程資源管理器 ”中單擊鼠標(biāo)右鍵,從彈出的菜單中選擇 “插入 —— 用戶(hù)窗體 /模塊 /類(lèi)模塊 ”來(lái)實(shí)現(xiàn)上面的操作。在獲取相應(yīng)的代碼模塊窗口后,就可以輸入 VBA 代碼了。 在 VBE 編輯器的代碼模塊中輸入 VBA 代碼,通常有以下幾種方法: ■ 手工鍵盤(pán)輸入; ■ 使用宏錄制器,即選擇菜單 “工具 —— 宏—— 錄
11、制新宏 ”命令,將所進(jìn)行的操作自動(dòng)錄制成宏代碼; ■ 復(fù)制 /粘貼代碼,即將現(xiàn)有的代碼復(fù)制后,粘貼到相應(yīng)的代碼模塊中; ■ 導(dǎo)入代碼模塊,即在 VBE 編輯器中選擇菜單 “文件 —— 導(dǎo)入文件 ”或在 “工程資源管理器 ”的任一對(duì)象上右擊鼠標(biāo)選擇菜單 “導(dǎo)入文件 ”,選擇相應(yīng)的代碼文件導(dǎo)入。 如果不想要某個(gè)模塊了,可以選擇菜單 “文件 —— 移除模塊 ”,也可以在相應(yīng)的模塊上單擊鼠標(biāo)右鍵, 從彈出的菜單中選擇 “移除模塊 ”。此時(shí),會(huì)彈出一個(gè)警告框,詢(xún)問(wèn)在移除模塊前是否將其導(dǎo)出,可以根據(jù)需要進(jìn)行選擇。 也可以選擇菜單 “文件 —— 導(dǎo)出文件 ”或在相應(yīng)的模塊上單擊鼠標(biāo)右
12、鍵后,從彈出的菜單中選擇 “導(dǎo)出文件 ”,將移除的模塊保存在相應(yīng)的文件夾中。這樣,以后可以對(duì)其進(jìn)行導(dǎo)入,從而加以利用。 調(diào)試 VBA 代碼 在 VBE 編輯器的菜單中,有兩項(xiàng)與調(diào)試運(yùn)行有關(guān)的菜單項(xiàng),即 “調(diào)試 ”菜單和 “運(yùn)行 ”菜單,它們提供了各種調(diào)試和運(yùn)行的手段。在我現(xiàn)階段進(jìn)行代碼調(diào)試時(shí),常 用到的有以下幾個(gè): ■ 逐語(yǔ)句。可以按 F8 鍵對(duì)代碼按順序一條一條語(yǔ)句運(yùn)行,從而找出語(yǔ)句或邏輯錯(cuò)誤。 ■ 設(shè)置斷點(diǎn)。在可能存在問(wèn)題的語(yǔ)句處設(shè)置斷點(diǎn) (可通過(guò)在相應(yīng)代碼前的空白部位單擊,將會(huì)出現(xiàn)一個(gè)深紅色的橢圓即斷點(diǎn) ),當(dāng)程序運(yùn)行至斷點(diǎn)處時(shí),會(huì)中止運(yùn)行。 ■ 在語(yǔ)
13、句的適當(dāng)部位設(shè)置 Debug.Print 語(yǔ)句,運(yùn)行后其結(jié)果會(huì)顯示在 “立即窗口 ” 中,可以此測(cè)試或跟蹤變量的值。 ■ 在“立即窗口 ”中測(cè)試。對(duì)值的測(cè)試或跟蹤,也可以以 “?”開(kāi)頭,在 “立即窗口 ” 中輸入需要測(cè)試值的語(yǔ)句, 按 Enter 回車(chē)鍵后將立即出現(xiàn)結(jié)果; 對(duì)執(zhí)行語(yǔ)句的測(cè)試,可直接在 “立即窗口 ”中輸入,按 Enter 回車(chē)鍵后將執(zhí)行。 ■ 可以按 F5 鍵直接運(yùn)行光標(biāo)所在位置的子程序。 在執(zhí)行程序后,必須在 Excel 工作表中查看所得到的結(jié)果??梢杂檬髽?biāo)單擊 VB E 編輯器左上角的 Excel 圖標(biāo)或者是按 Alt+F11 組合鍵切換到 Ex
14、cel 界面。 (當(dāng)然,對(duì)程序代碼的調(diào)試有很多方法和技巧,留待以后對(duì) VBA 進(jìn)一步研究和理 解更透徹后一并討論。 ) 利用 VBA 幫助系統(tǒng) 如果遇到疑問(wèn)或錯(cuò)誤,可以利用 Excel 自帶的 VBA 幫助系統(tǒng)。 ■ 可以在如圖 00-09 所示的部位輸入需要幫助的關(guān)鍵詞, 按 Enter 回車(chē)鍵后將會(huì)出現(xiàn)相關(guān)主題。用鼠標(biāo)單擊相應(yīng)的主題即會(huì)出現(xiàn)詳細(xì)的幫助信息。 圖 00-09 :幫助搜索窗口 ■ 可以按 F2 鍵,調(diào)出 “對(duì)象瀏覽器 ”窗口 (如圖 00-10 所示 ),在搜索文本框中輸 7 入需要幫助的關(guān)鍵詞
15、,將會(huì)在 “搜索結(jié)果 ”中出現(xiàn)一系列相關(guān)的對(duì)象及方法、屬性列表,單擊相應(yīng)的對(duì)象則會(huì)在 “類(lèi)”和 “成員 ”列表框中顯示相應(yīng)的對(duì)象和方法、屬性成員列表,在成員列表中相應(yīng)的項(xiàng)目上按 F1 鍵即會(huì)出現(xiàn)詳細(xì)的幫助信息。 ( “對(duì)象瀏覽器 ”是一個(gè)很好的幫助工具,值得好好研究 )
16、 圖 00-10 :對(duì)象瀏覽器窗口 參考資料 《 ExcelVBA 編程入門(mén)范例》參考或引用了以下書(shū)籍和資料: 8 (1)Excel 2003 高級(jí) VBA 編程寶典 (2)Excel 2003 與 VBA 編程從入門(mén)到精通 (中文版 ) (3)巧學(xué)巧用 Excel 2003 VBA 與宏 (中文版 ) (4)ExcelVBA 應(yīng)用程序?qū)I(yè)設(shè)計(jì)實(shí)用指南 (5)ExcelVBA 應(yīng)用開(kāi)發(fā)與實(shí)例精講 (6)一些網(wǎng)上資源 更多的信息 關(guān)于 ExcelVBA
17、 的更多參考和學(xué)習(xí)資源,可以在 上查找,有疑問(wèn)也可以在 ExcelHome 論壇中提問(wèn)。您也可以登錄我的博客 http://fanjy.bl ,上面有很多 Excel 的學(xué)習(xí)資料。同時(shí),歡迎與我聯(lián)系交流,我的 e-mail 是: xhdsxfjy@ 。 “學(xué)習(xí) Excel ,使用 VBA 對(duì) Excel 進(jìn)行控制操作是我很熱衷的業(yè)余愛(ài)好之一。 ” —— fanjy 第一章 Excel 應(yīng)用程序?qū)ο?(Application 對(duì)象 )及其常用方法 基本操作應(yīng)用示例 分類(lèi) :ExcelVBA>>ExcelVBA
18、編程入門(mén)范例 Application 對(duì)象代表整個(gè) Microsoft Excel 應(yīng)用程序,帶有 175 個(gè)屬性和 52 個(gè)方法,可以設(shè)置整個(gè)應(yīng)用程序的環(huán)境或配置應(yīng)用程序。 示 例 0 1 - 0 1 : 體 驗(yàn) 開(kāi) / 關(guān) 屏 幕 更 新 ( S c r e e n U p d a t i n g 屬 性 ) S u b 關(guān) 閉 屏 幕 更 新() MsgBox "順序切換工作表 Sheet1 → Sheet2 → Sheet3 → Sheet2 ,先開(kāi)啟屏幕 更 新 , 然 后 關(guān) 閉 屏 幕 更 新"
19、 W o r k s h e e t s ( 1 ) . S e l e c t M s g B o x " 目 前 屏 幕 中 顯 示 工 作 表 S h e e t 1 " A p p l i c a t i o n . S c r e e n U p d a t i n g = T r u e W o r k s h e e t s ( 2 ) . S e l e c t
20、 M s g B o x " 顯 示 S h e e t 2 了 嗎 ? " W o r k s h e e t s ( 3 ) . S e l e c t M s g B o x " 顯 示 S h e e t 3 了 嗎 ? " W o r k s h e e t s ( 2 ) . S e l e c t M s g B o x " 下
21、 面與 前面 執(zhí) 行的 程序 代碼 相同 , 但 關(guān)閉 屏 幕更 新功 能 " W o r k s h e e t s ( 1 ) . S e l e c t MsgBox "目前屏幕中顯示工作表 Sheet1" & Chr(10) & "關(guān)屏屏幕更新功能 " A p p l i c a t i o n . S c r e e n U p d a t i n g = F a l s e 9 W o r k s h e e
22、 t s ( 2 ) . S e l e c t M s g B o x " 顯 示 S h e e t 2 了 嗎 ? " W o r k s h e e t s ( 3 ) . S e l e c t M s g B o x " 顯 示 S h e e t 3 了 嗎 ? " W o r k s h e e t s (
23、 2 ) . S e l e c t A p p l i c a t i o n . S c r e e n U p d a t i n g = T r u e E n d S u b 示例說(shuō)明: ScreenUpdating 屬性用來(lái)控制屏幕更新。當(dāng)運(yùn)行一個(gè)宏程序處理涉 及到多個(gè)工作表或單元格中的大量數(shù)據(jù)時(shí),若沒(méi)有關(guān)閉屏幕更新,則會(huì)占用 CP U 的處理時(shí)間,從而降低程序的運(yùn)行速度, 而關(guān)閉該屬性則可顯著提高程序運(yùn)行 速度。
24、 示 例 0 1 - 0 2 : 使 用 狀 態(tài) 欄 ( S t a t u s B a r 屬 性 ) S u b t e s t S t a t u s B a r ( ) A p p l i c a t i o n. D i s p l a y S t a t u s B a r = T r u e 開(kāi) 啟 狀 態(tài) 欄 顯 示 賦 值 狀 態(tài) 欄 顯 示 的 文 本 A p p l i c a t i
25、o n. St a t u s B a r = " h t t p : / / f a n jy. b l o g. e x c e l h o m e. n e t " E n d S u b 示例說(shuō)明: StatusBar 屬性用來(lái)指定顯示在狀態(tài)欄上的信息。若不想再顯示狀態(tài) 欄文本,可使用 Application.StatusBar = False 語(yǔ)句關(guān)閉狀態(tài)欄顯示, 也可以在 程序開(kāi)始將原先的狀態(tài)欄設(shè)置存儲(chǔ),如使用語(yǔ)句 oldStatusBar = Application.Di splaySt
26、atusBar 將狀態(tài)欄原來(lái)的信息存儲(chǔ)在變量 oldStatusBar ,在程序運(yùn)行完成 或退出時(shí),將變量重新賦值給狀態(tài)欄,如使用語(yǔ)句 Application.DisplayStatusBa r = oldStatusBar ,以恢復(fù)狀態(tài)欄原狀。 示 例 0 1 - 0 3 : 處 理 光 標(biāo) ( C u r s o r 屬 性 ) S u b V i e w C u r s o r s ( ) A p p l i c a t i o n
27、. C u r s o r = x l N o r t h w e s t A r r o w M s g B o x " 您將 使用 箭頭 光標(biāo) , 切 換 到 E x c e l 界面 查看 光 標(biāo) 形 狀 " A p p l i c a t i o n . C u r s o r = x l I B e a m M s g B o x " 您將 使用 工形 光標(biāo) , 切 換 到 E x c e l 界面 查看 光 標(biāo) 形 狀 " A p p l i c a t i o n .
28、 C u r s o r = x l W a i t M s g B o x " 您 將使用等 待形 光標(biāo) , 切 換到 E x c e l 界 面查 看光 標(biāo)形狀 " A p p l i c a t i o n . C u r s o r = x l D e f a u l t M s g B o x" 您 已 將 光 標(biāo) 恢 復(fù) 為 缺 省 狀 態(tài) " End Sub 示 例
29、0 1 - 0 4 : 獲 取 系 統(tǒng) 信 息 S u b G e t S y s t e m I n f o ( ) MsgBox "Excel 版本信息為 :" & Application.CalculationVersion MsgBox "Excel 當(dāng)前允許使用的內(nèi)存為 :" & Application.MemoryFree MsgBox "Excel 當(dāng)前已使用的內(nèi)存為 :" & Application.MemoryUsed
30、MsgBox "Excel 可以使用的內(nèi)存為 :" & Application.MemoryTotal MsgBox "本機(jī)操作系統(tǒng)的名稱(chēng)和版本為 :" & Application.OperatingSystem 10 MsgBox " 本產(chǎn)品所登記的組織名為 M s g B o x " 當(dāng) 前 用 戶(hù) 名 為 : " M s g B o x " 當(dāng)前使 用的 E xc e l E n d :" & Application.OrganizationName & A p
31、 p l i c a t i o n . U s e r N a m e 版 本為 : " & A p p li c a ti o n. Ve r s i o n S u b 示例說(shuō)明:可以使用給 UserName 屬性賦值以設(shè)置用戶(hù)名稱(chēng)。 示 例 0 1 - 0 5 : 退 出 復(fù) 制 / 剪 切 模 式 ( C u t C o p y M o d e 屬 性 ) S u b e x i t C u t C o p y M o d e ( ) A p p l i c
32、a t i o n . C u t C o p y M o d e = F a l s e E n d S u b 示例說(shuō)明:退出復(fù)制 /剪切模式后,在程序運(yùn)行時(shí)所進(jìn)行的復(fù)制或剪切操作不會(huì) 在原單元格區(qū)域留下流動(dòng)的虛框線。需要提醒的是,在程序運(yùn)行完后,應(yīng)使用 A pplication.CutCopyMode = False 語(yǔ)句恢復(fù)該屬性的默認(rèn)設(shè)置。 示 例 0 1 - 0 6 : 禁 止 彈 出 警 告 信 息 ( D i s p l a y A l e r t s 屬 性 ) S u b t e s t A l e r t
33、 s D i s p l a y ( ) A p p l i c a t i o n . D i s p l a y A l e r t s = F a l s e E n d S u b 示例說(shuō)明:在程序運(yùn)行過(guò)程中, 有時(shí)由于 Excel 本身設(shè)置的原因, 會(huì)彈出對(duì)話(huà)框,從而中斷程序的運(yùn)行,您可以在程序之前加上 Application.DisplayAlerts = Fals e 語(yǔ)句以禁止彈出這些對(duì)話(huà)框而不影響程序正常運(yùn)行。需要注意的是,在程序運(yùn)行結(jié)束前,應(yīng)使 DisplayAlerts 屬性恢復(fù)為缺省狀態(tài),即使用語(yǔ)句 Application.Di
34、 splayAlerts = True。該屬性的默認(rèn)設(shè)置為 True,當(dāng)將該屬性設(shè)置為 False 時(shí), Excel 會(huì)使直接使用對(duì)話(huà)框中默認(rèn)的選擇,從而不會(huì)因?yàn)閺棾鰧?duì)話(huà)框而影響程序運(yùn)行。 示 例 0 1 - 0 7 : 將E x c e l 全 屏 幕 顯 示 S u b t e s t F u l l S c r e e n ( ) M s g B o x " 運(yùn) 行 后 將 E x c e l 的 顯 示 模 式 設(shè) 置 為 全 屏 幕 " A p p l
35、 i c a t i o n . D i s p l a y F u l l S c r e e n = T r u e M s g B o x " 恢 復(fù) 為 原 來(lái) 的 狀 態(tài) " A p p l i c a t i o n . D i s p l a y F u l l S c r e e n = F a l s e E n d S u b 示 例 0 1 - 0 8 : E x c e l 啟 動(dòng) 的 文 件 夾 路 徑 S u b E
36、 x c e l S t a r t f o l d e r ( ) MsgBox "Excel 啟動(dòng)的文件夾路徑為: " & Chr(10) & Application.StartupPat h End Sub 示 例 0 1 - 0 9 : 打 開(kāi) 最 近 使 用 過(guò) 的 文 檔 S u b O p e n R e c e n t F i l
37、 e s ( ) M s g B o x " 顯 示 最 近 使 用 過(guò) 的 第 三 個(gè) 文 件 名 , 并 打 開(kāi) 該 文 件 " MsgBox "最近使用的第三個(gè)文件的名稱(chēng)為 :" & Application.RecentFiles(3).N a m e 11 A p p l i c a t i o n . R e c e n t F i l e s ( 3 ) . O p e n End Sub 示 例 0
38、 1 - 1 0 : 打 開(kāi) 文 件 ( F i n d F i l e 方 法 ) S u b F i n d F i l e O p e n ( ) O n E r r o r R e s u m e N e x t MsgBo x " 請(qǐng)打開(kāi)文件 ", vbOKOn ly + vbInf ormation, " 打開(kāi)文件 " I f N o t A p p l i c a t i
39、 o n . F i n d F i l e T h e n MsgBox "文件未找到 ", vbOKOnly + vbInformation, " 打開(kāi)失敗 " E n d I f E n d S u b 示例說(shuō)明:本示例將顯示 “打開(kāi) ”文件對(duì)話(huà)框,若用戶(hù)未打開(kāi)文件 (即點(diǎn)擊 “取消 ”按 鈕 ),則會(huì)顯示 “打開(kāi)失敗 ”信息框。示例中使用了 FindFile 方法,用來(lái)顯示 “打開(kāi) ” 對(duì)話(huà)框并讓用戶(hù)打開(kāi)一個(gè)文件。如果成功打開(kāi)一個(gè)新文件,則該值為 True 。如果用戶(hù)
40、取消了操作并退出該對(duì)話(huà)框,則該值為 False 。 示 例 0 1 - 1 1 : 文 件 對(duì) 話(huà) 框 操 作 ( F i l e D i a l o g 屬 性 ) S u b U s e F i l e D i a l o g O p e n ( ) D i m l n g C o u n t A s L o n g 開(kāi) 啟 " 打 開(kāi) 文 件 " 對(duì) 話(huà) 框 W i t h A p p l i c a t i o n . F i l e D i a l o g ( m s o F i l e D i a l o g O p e n ) .
41、 A l l o w M u l t i S e l e c t = T r u e . S h o w 顯 示 所 選 的 每 個(gè) 文 件 的 路 徑 F o r l n g C o u n t = 1 T o . S e l e c t e d I t e m s . C o u n t M s g B o x . S e l e c t e d I t e m s ( l n g C o u n t ) Ne xt ln
42、 gC o u nt E n d W i t h E n d S u b 示例說(shuō)明:本示例顯示 “打開(kāi)文件 ”對(duì)話(huà)框,當(dāng)用戶(hù)在其中選擇一個(gè)或多個(gè)文件后,將依次顯示每個(gè)文件的路徑。其中, FileDialog 屬性返回打開(kāi)和保存對(duì)話(huà)框中一系列對(duì)象的集合, 您可以對(duì)該集合對(duì)象的屬性進(jìn)行進(jìn)一步的設(shè)置, 如上例中的 A llowMultiSelect 屬性設(shè)置為 True 將允許用戶(hù)選擇多個(gè)文件。 示 例 0 1 - 1 2 : 保 存 E x c e l 的 工 作 環(huán) 境 S u
43、b 保 存E x c e l 的 工 作 環(huán) 境 ( ) M s g B o x " 將 E x c e l 的 工 作 環(huán) 境 保 存 到 D : E x c e l S a m p l e 中 " A p p l i c a t i o n. S a v e W o r k s p a c e " D : E x c e l S a m p l e S a m p l e " E n d S u b 示例說(shuō)明:運(yùn)行本程序后,將工作簿以帶后綴名 .xlw 保存到 D 盤(pán)的 ExcelSam
44、pl e 文件夾中,生成的文件全名為 Sample.xlw 。當(dāng)改變工作簿并保存時(shí), Excel 會(huì)詢(xún)問(wèn)是覆蓋原文件還是保存副本。 示 例 0 1 - 1 3 : 改 變 E x c e l 工 作 簿 名 字 ( C a p t i o n 屬 性 ) 12 S u b S e t C a p t i o n ( ) A p p l i c a t i o n . C a p t i o n = " M y E x c e l B o o k " E n d
45、 S u b 示例說(shuō)明:運(yùn)行本程序后,將工作簿左上角 Excel 圖標(biāo)右側(cè)的 “Microsoft Excel ” 改為 “MyExcelBook”。 示 例 0 1 - 1 4 : 使 用 I n p u t B o x 方 法 S u b S a m p l e I n p u t B o x ( ) D i m v I n p
46、u t vInput = InputBox(" 請(qǐng)輸入用戶(hù)名 :", "獲取用戶(hù)名 ", Application.UserName) MsgBox " 您好 !" & vInput & ". 很高興能認(rèn)識(shí)您 .", vbOKOnly, "打招呼 " End Sub 示 例 0 1 - 1 5 : 設(shè) 置 頁(yè) 邊 距 ( C e n t i m e t e r s T o P o i n t s 方 法 ) S u b S e t L e f t M a r g
47、i n ( ) M s g B o x " 將 工 作 表 S h e e t 1 的 左 頁(yè) 邊 距 設(shè) 為 5 厘 米 " Worksheets("Sheet1").PageSetup.LeftMargin = Application.CentimetersTo P o i n t s ( 5 ) End Sub 示例 01-16 :使用 Windows 的計(jì)算器 (ActivateMicrosoftApp 方法 ) S u
48、 b C a l l C a l c u l a t e ( ) A p p l i c a t i o n . A c t i v a t e M i c r o s o f t A p p I n d e x : = 0 E n d S u b 示例說(shuō)明:運(yùn)行本程序后,將調(diào)用 Windows 的計(jì)算器。 示 例 0 1 - 1 7 : 在 程 序 中 運(yùn) 行 另 一 個(gè) 宏 ( R u n 方 法 ) S u b r u n O
49、 t h e r M a c r o ( ) MsgBox " 本程序先選擇 A1 至 C6 單元格區(qū)域后執(zhí)行 DrawLine 宏 " A c t i v e S h e e t . R a n g e ( " A 2 : C 6 " ) . S e l e c t A p p l i c a t i o n . R u n " D r a w L i n e " End Sub 示 例 0
50、 1 - 1 8 : 在 指 定 的 時(shí) 間 執(zhí) 行 宏 ( O n T i m e 方 法 ) S u b A f t e r T i m e t o R u n ( ) M s g B o x " 從現(xiàn) 在開(kāi) 始 , 1 0 秒 后 執(zhí) 行 程 序「 t e s t F u l l S c r e e n 」 " Application.OnTime Now + TimeValue("00:00:10"), "testFullScreen" E n d S
51、 u b 示例說(shuō)明:運(yùn)行本程序后,在 10 秒后將執(zhí)行程序 testFullScreen 。 示 例 0 1 - 1 9 : 暫 時(shí) 停 止 宏 運(yùn) 行 ( W a i t 方 法 ) S u b S t o p 5 s M a c r o R u n ( ) D i m S e t T i m e A s D a t e M s g B o x " 按下 「確 定」
52、 , 5 秒 后執(zhí) 行程 序「 t e s t F u l l S c r e e n 」 " 13 S e t T i m e = D a t e A d d ( " s " , 5 , N o w ( ) ) A p p l i c a t i o n . W a i t S e t T i m e C a l l t e s t F u l l S c r e e n E n d S
53、 u b 示例說(shuō)明:運(yùn)行本程序后,按下彈出的提示框中的 “確定 ”按鈕,等待 5 秒后執(zhí)行 另一程序 testFullScreen 。 示 例 0 1 - 2 0 : 按 下 指 定 的 按 鍵 后 執(zhí) 行 程 序 ( O n K e y 方 法 ) [ 示 例 0 1 - 2 0 - 1 ] S u b P r e s s K e y t o R u n ( ) M s g B o x " 按 下 C t r l + D
54、后 將 執(zhí) 行 程 序 「 t e s t F u l l S c r e e n 」 " A p p l i c a t i o n . O n K e y " ^ { d } " , " t e s t F u l l S c r e e n " E n d S u b [ 示 例 0 1 - 2 0 - 2 ] S u b R e s e t K e y () M s g B o x " 恢 復(fù) 原 來(lái) 的 按 鍵 狀
55、 態(tài) " A p p l i c a t i o n . O n K e y " ^ { d } " E n d S u b 示例說(shuō)明: Onkey 方法的作用主要是指定特定的鍵,當(dāng)按下指定的鍵時(shí)運(yùn)行相應(yīng)的宏程序,或者按下指定的鍵時(shí),使 Excel 屏蔽特定的功能。 示 例 0 1 - 2 1 : 重 新 計(jì) 算 工 作 簿 [ 示 例 0 1 - 2 1 - 1 ] S u b C a l c u
56、 l a t e A l l W o r k b o o k ( ) A p p l i c a t i o n . C a l c u l a t e E n d S u b 示例說(shuō)明:當(dāng)工作簿的計(jì)算模式被設(shè)置為手動(dòng)模式后,運(yùn)用 Calculate 方法可以 重新計(jì)算所有打開(kāi)的工作簿、 工作簿中特定的工作表或者工作表中指定的單元格 區(qū) 域 。 [ 示 例 0 1 - 2 1
57、- 2 ] S u b C a l c u l a t e F u l l S a m p l e ( ) If Application.CalculationVersion <> Workbooks(1).CalculationVersion The n A p p l i c a t i o n . C a l c u l a t e F u l l E n d I f E n d
58、 S u b 示例說(shuō)明:本示例先將當(dāng)前 Microsoft Excel 的版本與上次計(jì)算該工作簿的 Exc el 版本進(jìn)行比較, 如果兩個(gè)版本不同, 則對(duì)所有打開(kāi)工作簿中的數(shù)據(jù)進(jìn)行一次完整計(jì)算。其中, CalculationVersion 屬性返回工作簿的版本信息。 示 例 0 1 - 2 2 : 控 制 函 數(shù) 重 新 計(jì) 算 ( V o l a t i l e 方 法 ) F u n c t i o n N o n S t a t i c R a n d ( ) 當(dāng) 工 作 表 中 任 意 單 元 格 重 新 計(jì) 算
59、時(shí) 本 函 數(shù) 更 新 A p p l i c a t i o n . V o l a t i l e T r u e 14 N o n S t a t i c R a n d = R n d ( ) E n d F u n c t i o n 示例說(shuō)明:本示例摸仿 Excel 中的 Rand() 函數(shù),當(dāng)工作表單元格發(fā)生變化時(shí),都會(huì)重新計(jì)算該函數(shù)。 在例子中,使用了 Volatile 方法,強(qiáng)制函數(shù)進(jìn)行重新計(jì)算,即無(wú)論何時(shí)重新計(jì)算工作表,該函數(shù)都會(huì)重新計(jì)算。 示 例 0 1 - 2 3 : 利 用 工 作 表 函 數(shù)
60、( W o r k s h e e t F u n c t i o n 屬 性 ) S u b W o r k s h e e t F u n c t i o n S a m p l e ( ) D i m m y R a n g e A s R a n g e , a n s w e r S e t m y R a n g e = W o r k s h e e t s ( " S h e e t 1 " ). R a n g e ( " A 1 : C 1 0 " ) a n s w e r = A p p l i c a t i o
61、 n. W o rk s h e e t F u n c t i o n. M in ( m y R a n g e ) M s g B o x a n s w e r E n d S u b 示例說(shuō)明:本示例獲取工作表 Sheet1 中單元格區(qū)域 A1:C10 中的最小值,使用 了工作表函數(shù) Min() 。一般,使用 WorksheetFunction 屬性引用工作表函數(shù),但 如果 VBA 自帶有實(shí)現(xiàn)相同功能的函數(shù),則直接使用該函數(shù),否則會(huì)出現(xiàn)錯(cuò)誤。 示 例 0 1 - 2 4 : 獲
62、取 重 疊 區(qū) 域 ( I n t e r s e c t 方 法 ) S u b I n t e r s e c t R a n g e ( ) D i m r S e c t A s R a n g e W o r k s h e e t s ( " S h e e t 1 " ) . A c t i v a t e Set rSect = Application.Inte
63、rsect(Range("rg1"), Range("rg2")) I f r S e c t I s N o t h i n g T h e n M s g B o x " 沒(méi) 有 交 叉 區(qū) 域 " E l s e r S e c t.S e l e c t E n d I f E n d S u b 示例說(shuō)明:本示例在工作表 Sheet1 中
64、選定兩個(gè)命名區(qū)域 rg1 和 rg2 的重疊區(qū)域,如果所選區(qū)域不重疊, 則顯示一條相應(yīng)的信息。 其中, Intersect 方法返回一個(gè) R ange 對(duì)象,代表兩個(gè)或多個(gè)范圍重疊的矩形區(qū)域。 示 例 0 1 - 2 5 : 獲 取 路 徑 分 隔 符 ( P a t h S e p a r a t o r 屬 性 ) S u b G e t P a t h S e p a r a t o r ( ) M s g B o x " 路 徑 分 隔 符 為 " & A p p l i c a
65、 t i o n . P a t h S e p a r a t o r E n d S u b 示例說(shuō)明:本示例使用 PathSeparator 屬性返回路徑分隔符 ( “”)。 示 例 0 1 - 2 6 : 快 速 移 至 指 定 位 置 ( G o t o 方 法 ) S ub G otoSa m pl e ( ) Application.Goto Reference:=Worksheets("Sheet1").Range("A154"), _ s c
66、roll := T r u e E n d S u b 示例說(shuō)明:本示例運(yùn)行后,將當(dāng)前單元格移至工作表 Sheet1 中的單元格 A154 。 15 示 例 0 1 - 2 7 : 顯 示 內(nèi) 置 對(duì) 話(huà) 框 ( D i a l o g s 屬 性 ) S u b D i a l o g S a m p l e ( ) A p p l i c a t i o n . D i a l o g s ( x l D i a l o g O p e n ) . S h o w E n d S u b 示例說(shuō)明:本示例顯示 Excel 的“打開(kāi) ”文件對(duì)話(huà)框。其中, Dialogs 屬性返回的 集合代表所有的 Excel 內(nèi)置對(duì)話(huà)框。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高考政治一輪復(fù)習(xí):統(tǒng)編版選擇性必修1-3【共3冊(cè)重點(diǎn)知識(shí)點(diǎn)匯總】
- 2025年高考政治一輪復(fù)習(xí):七冊(cè)教材重點(diǎn)考點(diǎn)匯總
- 2025年高考生物一輪復(fù)習(xí):高中生物必修+選必修5冊(cè)教材重點(diǎn)知識(shí)點(diǎn)匯總
- 2025政府工作報(bào)告要點(diǎn)速覽發(fā)展總體要求和政策取向
- 《哪吒2》與DEEPSEEK年輕力量的崛起助力中國(guó)突破重圍
- 建設(shè)金融強(qiáng)國(guó)做好金融五篇大文章的指導(dǎo)意見(jiàn)
- 落實(shí)高質(zhì)量發(fā)展要求如期完成既定目標(biāo)任務(wù)更新理念科學(xué)統(tǒng)籌切實(shí)增強(qiáng)規(guī)劃執(zhí)行的系統(tǒng)性整體性協(xié)同性
- 如何成為一名暖護(hù)暖護(hù)的概念與職責(zé)
- 藥品儲(chǔ)存與養(yǎng)護(hù)醫(yī)療護(hù)理藥品儲(chǔ)存藥品養(yǎng)護(hù)藥品常識(shí)
- 手術(shù)室職業(yè)暴露與防護(hù)診療護(hù)理等過(guò)程中被患者血液體液等污染自身皮膚或黏膜導(dǎo)致的感染
- XX企業(yè)中層管理者領(lǐng)導(dǎo)力提升培訓(xùn)課程
- 醫(yī)院新員工入職培訓(xùn)醫(yī)院新員工必備主要職業(yè)意識(shí)醫(yī)院新員工必備工作觀
- 人工智能技術(shù)介紹人工智能DeepSeek人工智能的未來(lái)展望與發(fā)展
- 養(yǎng)娃要有松弛感家庭教育讓孩子在具有松弛感的家庭里慢慢成長(zhǎng)
- 醫(yī)院新員工入職培訓(xùn)醫(yī)院新員工必備主要職業(yè)意識(shí)