Excel2010VBA編程與實踐

Excel2010VBA編程與實踐

《Excel2010VBA編程與實踐》是2010年出版的圖書,作者是羅剛君章蘭新黃朝陽。

基本信息

宣傳語

Excel2010VBA編程與實踐 Excel2010VBA編程與實踐
壁立千尋敢登攀,尋根究底解疑難!

內容簡介

本書是“Excel疑難千尋千解”叢書之一,為讀者展示VBA編程的實戰技巧,包括工作中的疑難處理方案、自定義函式技術、代碼封裝技術、功能區設計技術,以及外掛程式開發實戰與原理分析。本書側重於“解決問題”,主要展示諸多常見疑難的解決方案。閱讀本書,可以解決工作中的諸多疑難雜症,大大提高工作效率,且有助於提升編程能力、拓展思路,將理論向實戰邁進。
本書有一個貫穿全文的思想:讓代碼同時具備準確、糾錯、兼容和效率四個特性,所以本書所有案例都在準確性與高效性的基礎上提供完善的錯誤處理措施與思路講解,且所有案例都通用於Excel2003、2007和2010。作者使用Excel2010界面寫作,但代碼在多個版本中都可以正常運行,不需要任何修改。
本書包括251個案例,最後一個是VBA的大型綜合套用——開發工資管理系統。書中每個案例採取疑難描述、解決方案、操作方法、原理分析、知識擴展五個步驟進行講解,力圖解決問題之外還讓讀者可以通曉其思路和原理。
本書配合《ExcelVBA程式開發自學寶典》學習會有更好效果,該書側重於VBA的基礎理論教學,而本書則側重於解決實際問題,屬於該書配套的進階套用。前者學習理論與語法,而通過本書學習思路與技巧。
本書既適合ExcelVBA用戶參考學習,又可以作為大中專院校或者企業的培訓教材,同時對於在數據處理與分析方面有實戰經驗的用戶也有較高的參考價值。

自序

尋,是一種尺度。古時八尺為一尋,王安石詩云“飛來峰上千尋塔,聞說雞鳴見日升”,形容飛來峰上塔之極高。
尋,是一種技巧。今日網路為自學者提供了非常巨大的資源平台,但缺乏技巧的查詢和求助,往往“眾里尋他千百度”卻難有“驀然回首”的頓悟。而善用關鍵字搜尋,則常可使人體會到“燈火闌珊”之美景。
尋,是一種追求。網路上活躍著這么一群人,他們曾經也是懵懂的菜鳥,在尋解獲助時心存感激,在尋師問道時心懷崇敬。漸漸地,他們因互助的理念而聚集,相互扶持,堅持不懈地學習、實踐與創新。面對一個個技術的據高點,他們是睿智而無私的“尋者”,壁立千尋敢登攀,尋根究底解疑難!
尋,是一種心境。求知探秘當志存華山論劍之高遠,解決問題應意守無劍無招之尋常,這便是“尋者”修煉的心境。來者是客,有問必答,不慕華麗的招式,但求直擊問題之根源,用簡單的方法完成複雜的事情。
本叢書的作者就是這樣的一群“尋者”。在長期的線上答疑和線下交流、培訓活動中,他們接觸過針對同一類問題千奇百怪的提問,深知許多人苦尋而不得的要害,甚至練就了一手僅根據含混不清的提問進行猜題、解題的本領。通過不斷地積累與整理,Excel技巧網(技術社區)的版主們推出了“Excel疑難千尋千解”叢書,這些“疑難”都是許多人曾經搜尋和提問過的,也是大多數用戶在工作中可能會遇到的一些尋常問題。書中案例涉及行政辦公、人力資源、金融財務、經濟統計、學校教育、工程技術、醫療衛生、質量管理、生產管理等多個領域,並根據Excel的主要功能分冊地整理成書。
在叢書編著過程中,“實用為主”的原則貫徹始終,所有案例都遵循實際工作場景和知識點解說緊密結合的主線,拋開一些華而不實、艱難晦澀的高深解法,而將基礎理論和解決方案寓於尋常技巧之中,讓讀者能得其用、明其理,以期實現為更多的人解決更多問題的簡單願景。
尋者
感謝您選擇“Excel疑難千尋千解”叢書之《Excel2010VBA編程與實踐》!
Excel2010具有強大的運算與分析能力。從Excel2007開始,改進的功能區使操作更直觀、更快捷,實現了質的飛躍。不過需要進一步提升效率及實現自動化則僅靠功能區的選單功能是遠遠不夠的,正因如此,微軟公司在Excel中引進了VBA程式,且首次在Excel中升級VBA到7.0版本。通過VBA可以讓複雜的報表簡單化,且可以讓部分操作全自動完成,十倍或者百倍的制表效率成為可能。
叢書介紹
“Excel疑難千尋千解”叢書是由Excel技巧網的負責人、微軟最有價值專家(MVP)黃朝陽先生策劃並組織編寫的一套系列書籍。
Excel技巧網旨在重點推廣Excel2010及今後更高版本的套用,並為廣大的Excel愛好者提供一個內容充實、分類清晰、經典實用、精彩紛呈、互惠學習、友好交流的平台。社區成立不久便吸引了眾多微軟MVP和有志於推廣電子表格套用技術的高手駐足,長期為網友免費解答疑難問題,並勤於將精彩的答疑帖子按其所涉及的知識和套用兩個維度,整理成為原創技術文章。
社區設有討論、文章、資源三大技術專區,並按照Excel的功能歸屬將主題劃分為基礎套用、數據透視表、條件格式、函式與公式、圖表與圖形、VBA、SQLinExcel、綜合套用等方面,本叢書的各讀本正是基於相近的主題分類。
本叢書由黃朝陽、王建發、陳國良等微軟MVP以及羅剛君、榮勝軍、李術彬、林盤生、陳樹青、章蘭新等多位社區資深版主聯手打造,將來還將邀請更多高級會員加盟參與叢書其他讀本的創作。其中《Excel2010操作與技巧》、《Excel2010函式與公式》、《Excel2010VBA編程與實踐》已先於第一批出版,近期還將陸續推出《Excel2010圖表與圖形》、《SQLinExcel2010》等其他讀本。
得益於多年來在社區答疑中的磨礪,作者們將豐富的實戰經驗付諸筆端,精心設計了上千案例,將Excel方方面面的知識點融入其中。每個案例都採用一般用戶遇到疑難時最可能的提問方式和套用場景對問題進行描述,提供具有針對性的解決方案和詳盡的操作步驟,並配合以原理分析和知識擴展環節,既授人以魚,又授人以漁。叢書採用“疑難”加“知識點”的特色目錄索引,方便讀者根據需要快速地查找。對於渴望學習和掌握新知識的Excel用戶來說,與其千百次地找尋問題答案,不如靜心地讀此叢書一卷。
讀者對象
本書使用MicrosoftOfficeExcel2010界面進行編寫,但是在編寫過程中作者特意注重程式的通用性,確保每個案例的解決方案都通用於Excel2003、2007和2010。而且為了方便讀者,隨書光碟中主要有兩種格式的案例檔案,包括xls格式和xlsm格式,如果是載入宏則包括xla格式和xlam格式。不管讀者使用Excel2003、2007還是2010都可以直接使用,不需要轉換,也不需要修改代碼就可以順利的在多版中使用本書的所有案例。
本書通過250個案例和1個大型綜合套用展示VBA編程技巧,適合所有辦公制表人士,特別是需要提升工作效率及需要深入研究VBA者學習之用。如果您沒有VBA基礎,那么本書可以為您解決工作中的疑難。書中對常見問題有一個或者多個解決方案,並輔以解題思路與原理分析,讀者可以通過書中的現有案例進行拓展,解決更多的類似問題。而對於已有VBA基礎者,則可以學習本書的解題思路與代碼防錯技術、代碼最佳化之道。本書的案例涉及基礎套用、查找引用、數據處理、報表列印、函式開發、檔案目錄、圖表設計、圖形對象、窗體控制項、外掛程式開發、代碼封裝和在工資管理系統等諸多方面,可以全方位的提升VBA編程的功底,讓您將VBA理論投入到工作中轉換成效率。
閱讀指南
本書包括11章,涉及制表的每個方面。前10章分別為基礎理論篇、查找引用篇、數據處理篇、報表列印篇、函式開發篇、檔案目錄篇、圖表設計篇、圖形對象篇、窗體控制項篇、外掛程式開發篇,每章有數十個案例,且為了讓讀者能學以致用,每章提供3個思考與練習題。最後一章為綜合套用,講述通過VBA開發工資管理系統的思路。
詳細的章節內容如下:
第1章:基礎理論篇
本章包括5個小節——快速獲取幫助、程式防錯要點、代碼最佳化之道、提升代碼的兼容性。主要介紹VBA編程的一些基礎知識、代碼的糾錯與最佳化,不過是以案例形式呈現出來,通過實際的套用讓理論描述更有說服力。
第2章:查找引用篇
本章包括4個小節——本表查找、跨表及多表查找、檔案查找與轉換和圖片查找與引用。主要講述數據引用、圖片引用的經典案例。其中對於查找提供了多種思路,儘量展示效率最高且具有容錯性的代碼與技巧。本章是全書的三大重點之一,通過大量的實例傳授瞬間查找數據的技巧。
第3章:數據處理篇
本例包括7個小節——定位的技巧、數據處理及格式轉換、單元格合併技巧、報表合併與拆分、單元格顏色的綜合套用、重複數據處理和數據透視。本章是第二個重點,全面闡述VBA對數據處理的技巧。Excel本身具備數據處理的功能,而利用VBA可以大大提升數據處理的速度,本章屬於辦公制表人員必學範疇。
第4章:報表列印篇
本章包括2個小節——列印設定和特殊列印格式設計。主要講述與列印或者列印格式設定方面的疑難處理技巧,包括工資條設計、分頁小計、批量列印和底端標題等等相當常用的一些疑難處理。
第5章:函式開發篇
本例包括3個小節——自定義函式基礎、開發自定義函式和自定義函式的管理。本章闡述開發函式的技巧與函式的管理思路,從而強化Excel的運算能力。
第6章:檔案目錄篇
本章包括2個小節——檔案管理和目錄管理。本章內容與制表本身無直接關係,但可以對檔案和資料夾進行刪除、備份、創建、轉換、命名等等操作,對工作大有裨益。
第7章:圖表設計篇
本章包括2個小節——圖表編輯和多表管理。設計基本的圖表比較適合手工操作,而對於圖表或者圖表中的標籤批量操作時,VBA就有用武之地了,可使操作效率大大提升。
第8章:圖形對象篇
本章包括3個小節——圖形對象的基本操作、批註的高級套用和圖形對象綜合套用。與圖形對象相關的高級套用不適合手工操作,本章通過21個案例演示VBA操作圖形對象的技巧,包括導入、導出、引用、瀏覽等等操作。
第9章:窗體控制項篇
本章包括4個小節——ActiveX控制項套用、窗體設計技巧、窗體與工作表之數據互動和開發動畫窗體。其中重點在於窗體與工作表數據互動的案例演示,通過窗體處理數據並導入、導出,可以實現很多Excel本身無法完成的功能。最後對窗體的美化技巧提供6種思路。
第10章:外掛程式開發篇
本章包括3個小節——訂製選單與工具列、開發通用外掛程式和封裝DLL外掛程式。本章是本書第三個重點章節,通過案例展示VBA開發外掛程式的強大功能,並附帶開發功能區的步驟與技巧,使讀者有中文功能區的開發有進一步認識。通過本章的案例,讀得可以開發自己需要的外掛程式,包括將外掛程式封裝,從而實現代碼隱藏。
第11章:工資管理系統
本章講述利用VBA開發一個中型系統的過程與思路,屬於VBA的綜合套用。
本書約定
為了熟悉本書對滑鼠操作、鍵盤指令等描述方式,從而更順暢地閱讀本書,您有必要了解以下內容:
選單
本書中表示連續多個選單指令時,使用右箭頭“→”進行連線,例如:單擊“檔案”選項卡→“選項”→“公式”,表示依次單擊“檔案”選項卡的“選項”按鈕,在彈出的“Excel選項”對話框中單擊“公式”選項卡。
滑鼠
本書中表示滑鼠操作時,均使用標準的表示方法。其中“指向”表示將滑鼠指針移到對象之上,且不單擊任何按鈕;而“單擊”特指利用滑鼠左鍵單擊目標;“右鍵單擊”表示利用滑鼠的右鍵單擊對象;“雙擊”表示快速按下滑鼠左鍵兩次;“拖放”則表示按下滑鼠左鍵不鬆開的狀態下拖動滑鼠,拖到目標區域後再放開滑鼠左鍵。
鍵盤
本書中表示按鍵時使用尖括弧“【】”號包含,例如“按【Ctrl+Shift+Enter】組合鍵”表示同時按下鍵盤上的Ctrl鍵、Shift鍵和Enter鍵。其他按鍵的表示方法相同,如果需要特殊操作方法,會在相關內容中詳細說明。
代碼
本書的VBA代碼均不區分大小寫,在編寫代碼可以隨意,但代碼錄入到代碼視窗後,VBA會將代碼自動轉換成首字元大寫形式,帶引號的字元串和變數名除外。
本書特點
本書與市場上其他Excel書籍有很大的不同,文體結構新穎,案例貼近實際,講解深入透徹,表現為以下幾個方面:
場景式提問
本書從成千上萬網友提問中精心歸納、提煉出各類問題,並還原為貼近真實的求助語言及案例,方便讀者搜尋與實際工作相似問題。
增強式目錄
本書總體章節劃分以“基礎理論→分類套用→綜合實戰”為主線,將VBA的主要知識點和經典解決方案設計到每個疑難的案例中,並採用“疑難”加“知識點”的特色目錄索引,方便讀者根據需要翻閱和查找。
開創式結構
本書案例中的“解決方案”環節是對問題的思路解說,結合“操作方法”環節中的步驟讓人更容易理解。“原理分析”環節則主要解釋所使用代碼的工作原理。“知識擴展”環節包括與案例相關的知識點補充,可拓展讀者的視野,同時也有利於理解案例本身的解決思路。
本書的代碼還有兩個顯著的特點,有別於市場上其它同類書籍,即處處確保代碼的防錯與通用性。
防錯
防錯是指編寫代碼時儘可能考慮所有可能出錯的情況,並在代碼中加以防範。或者根據不同潛在的運行環境提供不同的執行方案,讓代碼可以多種情況下順利執行,而不會彈出錯誤提示框導致程式中斷。
通用
通用性是指代碼可以適應不同環境。環境是指軟體的不同版本,例如WINXP、VISTA和WIN7作業系統都可以順序執行本書所有案例的代碼,Excel2003、2007和2010版本的用戶也可以順利執行每個案例的代碼,且不需要做任何修改。
環境還包括表格的區域。本書儘可能不採用硬編碼引用工作表對象和區域地址,而採用具備自動適應變化的代碼作為數據處理的引用源,從而使代碼適應不同用戶或雖是同一用戶但工作表數據區域變化時皆可使用。例如Range("A1:D10")引用區域屬於硬編碼,當數據區域變化後,代碼必須修改才可執行;而採用ActiveSheet.UsedRange或者ActiveCell.CurrentRegion兩種方法引用區域則可以適應數據區域的增減變化,從而提升代碼的通用性。
學習方法
本書是VBA編程的案例集粹,其宗旨在於為讀者解決實際工作的疑難,以及對同類的問題提供解決思路。
書中各章節的結構雖然是從易到難,但章節之間相互獨立,即可以從任意章節開始學習,不需要遵照從前至後的順序閱讀。
本書每個案例中的“解決方案”部分表示對問題的思路解說,配合“操作方法”中的步驟和代碼更容易理解。“原理分析”部分則主要包括兩方面內容:代碼中部分方法或者語句的語法解釋,以及解決本疑難的理論依據。“知識擴展”部分包括與本例問題或者本代碼相關的知識補充,用於擴展讀者的知識範圍,同時也有利於理解本例代碼的思路。
本書是“Excel疑難千尋千解”叢書之一,可為讀者解決VBA編程的疑難,同時也是作者羅剛君的另一本著作《ExcelVBA程式開發自學寶典》的升級版與配套教材。《ExcelVBA程式開發自學寶典》重點在於講述VBA編程的基礎理論和語法,並配有“Excel百寶箱”大型外掛程式的設計過程詳解,該書適合完全沒有VBA基礎者學習,而本書是該書配套的案例,可以使讀者將理論付諸實踐,解決實際工作中的疑難及開發屬於自己的外掛程式。
售後服務
本書由Excel技巧網(技術社區)出品,讀者在閱讀中有任何疑難或者建議、BUG反饋等都可以到社區發貼,包括求助、交流,也可以在社區下載與本書相關的文檔。社區為本叢書開闢了一個專門的版面用於編讀往來,同時本書也配備了專屬的QQ群作為售後服務的聯繫方式,群號公布於上述網址,讀者可以申請到群中與作者面對面交流。
購買本書除可以獲取隨書光碟中的所有案例檔案外,還有兩項服務,包括實用外掛程式和Excel百寶箱。
實用外掛程式是指隨書光碟中的8個外掛程式,位於“贈品”資料夾中。8個外掛程式可以實現8個功能,同時學習外掛程式的開發思路。每個外掛程式附有原始碼,每句代碼都有含義注釋,且配有使用說明。外掛程式名稱如下:
1.二級選單
可以像數據有效性一樣產生下拉列表,但更強大,可以產生二級選單。
2.批註替換工具
可以批量替換批註文本的工具,且可設定區分大小寫與匹配方式。
3.選項選單設計
通它既可控制某些視圖對象的顯示與隱藏,又可學習選項選單的設計思路。
4.一鍵錄入代碼
用於提升編寫代碼的速度與準確度,單擊選單即可錄入常見代碼。
5.複選框管理
可以批量生成複選框,也可以批量刪除、勾選複選框,功能強大,操作方便。
6.歷史數據記錄器
將指定區域中每一個單元格的修改都記錄在案備查,且同時記錄修改時間。
7.增強型視圖控制
是內置的視圖工具的強化版本,更重要的是可以學習如何開發發功能區。
8.自定義函式封裝
自定義函式Connect是&運算的強化版本,功能強大,且配備代碼封裝教材。
除以上服務外,如果讀者同時購買本書和《ExcelVBA程式開發自學寶典》,那么額外贈送三個實用外掛程式和一個百寶箱8.0正式版。外掛程式包括:
1.隱藏磁碟
可以將指定的磁碟隱藏起來,並禁用使用,從而確保檔案安全。
2.隱藏錯誤值
可以將工作表中的所有錯誤值在隱藏與顯示之間瞬間切換。
3.工作簿標籤
在選單產生工作簿標籤的外掛程式,讓工作簿切換更方便、快捷。
百寶箱8.0是利用VBA開發的大型外掛程式,百寶箱正版包括105個功能,可以大大強化Excel的功能,原價50元銷售。對於讀者可以免費贈送,可進入作者QQ群後向作者免費申請。
作者與致謝
叢書從策劃到出版,傾注了電子工業出版社計算機圖書分社張慧敏、石倩、安娜等多位編輯近一年的心血,特在此表示衷心地感謝!
為保證叢書的質量,使其更貼近讀者,我們組織了的多位版主和高級會員參與了本書的預讀工作,他們是卞志宏、陳澤祥、董學良、杜凱、付振強、高大偉、黃成武、黃神旺、黎仁和、李國、李秋才、李銳、李懿、李雲龍、劉冠、毛力、孟祥鵬、錢林俊、宋玉梅、汪結章、王建輝、王士剛、王洋、翁嘉辰、吳錦申、徐光明、許有標、葉帆、張麗、張敏、張瑞芳、張永強和周崢。感謝各位預讀員的辛勤、耐心與細緻,使得本叢書能以更加完善的面目與各位讀者見面。同時還需要特別感謝陳樹青完滿地組織了本次預讀工作。
本書由黃朝陽策劃,羅剛君和章蘭新負責編寫。其中第1、2、3、4、8、9、10和11章由羅剛君編寫;第5、6、7章由章蘭新編寫,最後由羅剛君、黃朝陽完成統稿。
儘管作者對書中的案例精益求精,但疏漏仍然在所難免,如果您發現書中的錯誤或某個案例有更好的解決方案,敬請登錄售後服務的網址向作者反饋。我們將儘快在社區回復,且在本書再次印刷時予以修正。
再次感謝您的支持!
編著者
2010年8月28日
------------------------------------------------------------------------------------------------------------------------申明:本書的所有案例和講解都允許作為視頻或面授培訓的教材,但使用者必須遵循約定,在培訓教材的明顯處註明“全部(或部分)案例出自‘Excel疑難千尋千解’叢書之《Excel2010VBA編程與實踐》”的字樣,以確保作者著作權不受侵犯。

目錄

第1章基礎理論1
1.1快速獲取幫助1
疑難1如何獲取所有控制項的屬性及屬性值1
前期綁定與後期綁定4
疑難2部分對象在輸入時沒有成員列表提示,如何解決5沒有成員列表的對象6
疑難3如何找出錯誤語句及獲取錯誤原因並傳送到開發者信箱6利用ShellExecute函式調用程式的方式81.2程式防錯要點8
疑難4程式出錯有哪些原因9
常見錯誤分析9
疑難5如何獲取VBA所有運行時錯誤的詳細說明10
通過Error函式獲取錯誤信息12
疑難6如何在執行完畢後報告出錯次數及原因13
捕捉所有錯誤信息14
疑難7如何開發完善的程式15
數組區域對VBA程式的影響17
疑難8防錯語句在程式或者函式中套用有哪些優勢17利用Err.Number屬性判斷錯誤類型19
1.3代碼最佳化之道19
疑難9如何最佳化過程“隱藏偶數行”19
關閉ScreenUpdating提升程式效率20
疑難10如何最佳化過程“設定字型屬性”21
利用With簡化對象引用22
疑難11如何最佳化過程“隔三行求和”22
減少單元格的寫入次數提升程式效率23
疑難12如何最佳化過程“B列所有圖片右移”23
有針對性地使用Select方法24
疑難13如何最佳化過程“建工作表目錄”25
VBA中數組的作用26
疑難14如何最佳化過程“成績評語”26
區分適合置於循環體中的語句27
疑難15如何最佳化過程“刪除空單元格所在行”27
不用循環而選擇多個符合條件的單元格28疑難16如何最佳化過程“批量修改批註背景色”28
區分父對象與子對象29
疑難17如何最佳化過程“隔一行插入一行”30
計算模式對程式效率的影響31
疑難18如何最佳化過程“獲取外網IP位址”31
使用變數的條件32
1.4提升代碼的兼容性32
疑難19程式的兼容性體現在哪些方面33
作業系統對VBA的影響33
疑難20如何讓程式適應不確定對象34
使用動態區域引用讓代碼具有更強的通用性37疑難21如何讓程式兼容Excel多版本37
識別Excel的版本號39
疑難22如何讓程式兼容英文和中文系統40
利用API函式識別簡體、繁體中文與英文41疑難23如何讓程式兼容簡體與繁體中文41
讓代碼適應簡體與繁體系統42
1.5練習與思考42
第2章查找引用44
2.1本表查找44
疑難24如何查找不及格學生姓名並突出顯示44
利用Union方法合併多區域46
疑難25如何一次性羅列表中三省員工的姓名47
Find方法的使用技巧49
疑難26如何在輸入時逐步查找50
通過KeyUp事件自動執行查詢52
疑難27如何按指定的格式查找53
FindFormat的使用技巧54
疑難28如何實現字型格式替換54
替換格式的條件55
疑難29如何查找所有“#”並標為上標56
區分上標、下標的套用對象57
疑難30如何找出還款時間超過一年及未還款的客戶信息57日期函式Datedif的特性59
疑難31可以將查找到的所有數據串連並寫入剪貼簿中嗎59引用“MicrosoftForms2.0ObjectLibrary”的兩種方法60疑難32可以創建一個工具列來方便查找嗎61
設定lookat參數實現模糊查找63
疑難33如何快速羅列出每個產品最新報價63
Collection對象的套用技巧65
疑難34如何在具有合併單元格的區域中多條件逐步查找65通過“MergeArea”屬性返回合併區域67疑難35如何查找成績並分批發郵件67
VBA中發編寫郵件正文時的換行符的表示法682.2跨表及多表查找69
疑難36如何引用數據表創建多級下拉選單69
“ActionControl”對象的功能與限制72
疑難37如何將所有表中查找的完成數匯總到總表73利用SpecialCells定位實現快速查找74
疑難38在窗體中羅列每月產量冠軍名單74
不採用循環,一次性找出最大值所在行76疑難39如何將具有外部數據引用的單元格轉換成值76通過“[]”和“’!”定位具有外部連結的公式77疑難40如何讓連結到其他表中隱藏單元格的超連結生效77通過xlSheetVisible屬性切換工作表顯示狀態78疑難41如何實現多部門電話資料模糊查詢79
Target與Activecell的區別80
疑難42如何實現所有未收貨款者在狀態欄隨機顯示80利用OnTime定時執行程式82
2.3檔案查找與轉換82
疑難43如何判斷指定檔案是否存在82
利用Dir函式判斷檔案是否存在83
疑難44如何進行深度查找且創建檔案目錄84
FileDialog對象的套用85
疑難45如何查找並備份所有“3月生產表”86
copyfile方法對檔案複製88
疑難46如何將所有Excel檔案轉換成XPS或PDF檔案88利用printout方法將工作錶轉換成XPS檔案90疑難47如何在網上鄰居的共享盤中查找並打開“單價表”91利用FileExists方法判斷檔案是否存在92疑難48如何實現全盤查找“上海灘.MP3”,有則自動翻放92播放音樂的三種方式94
疑難49如何在網上自動搜尋與當前單元格同名的歌曲並播放95利用網頁地址索引歌曲並自動播放96
2.4圖片查找與引用96
疑難50如何瞬間刪除當前表中所有圖片96
DrawingObjects與Shape對象的區別97
疑難51可以將簽名圖片複製到表中所有簽名處嗎97複製圖形對象與複製數據的區別98
Selection代表什麼99
疑難52如何像vlookup引用數據一樣引用圖片99
對圖片設定公式引用其他圖片101
疑難53如何通過窗體預覽指定目錄中的所有圖片101通過LoadPicture函式載入圖片103
2.5練習與思考103
第3章數據處理104
3.1定位的技巧104
疑難54如何選擇當前表0~100之外的數據104
使用定位技術減少循環語句的循環次數105疑難55如何定位奇數行105
MOD配合SpecialCells定位奇數行106
疑難56可以瞬間定位並隱藏所有錯誤值嗎107
通過SpecialCells定位錯誤值108
疑難57如何在輸入數據時自動定位下一行的目標單元格109限制刪除單元格的數據時不觸發工作表的Change事件110疑難58可以將標題以外的區域轉換成“萬”為單位嗎110VBA中如何處理雙引號111
疑難59如何定位當前表最大值和最小值112
調用工作表函式並配合Find方法查找最大值113疑難60能定位並標識高於平均值的單元格嗎113
VBA中數字、漢字的大小關係115
疑難61如何反向選擇工作表區域115
輔助區的重要性116
3.2數據處理及格式轉換116
疑難62如何將單詞在大寫、小寫與首字母大寫間任意切換116利用StrConv函式對英文進行大寫、小寫和首字母大寫轉換117疑難63如何將二維的入庫錶轉換成一維排版方式118利用數組提升代碼執行效率119
疑難64能否不用循環對選區進行橫向與縱向匯總120“R1C1”引用方式的優點121
疑難65如何批量地將字元串中的字母、數字和漢字分離出來122利用Like運算符區別漢字、數字和字母123疑難66可以將表達式轉換成運算結果嗎124
通過Evaluate計算表達式125
疑難67如何快速填充所有空單元格125
利用intersect引用區域提升代碼通用性126疑難68如何將產品銷售地區瞬間轉換成下拉列表126利用代碼設定有效性序列127
疑難69數據有效性可以設定三級關聯下拉列表嗎128利用Dictionary對象獲取唯一值130
疑難70可以對職員信息表按學歷排序嗎130
新舊版本中Sort的差異131
疑難71可以不打開工作簿而提取其數據嗎132
VBA中調用公式實現從未打開的工作表中取值133疑難72如何保護所有公式不能修改134
切換Locked屬性實現公式保護135
疑難73如何實現金額數據分解135
MID取文本的特點137
疑難74VBA可以破解工作表密碼嗎137
表的分類138
疑難75如何對分段編號進行合併轉換138
減少數組變數空間分配次數的方法140
疑難76如何將5個大小相同選區的數據互換141
Areas與CurrentRegion的區別142
疑難77如何取得1000之內的質數142
質數的特性143
疑難78可以生成指定範圍的不重複隨機數嗎144
Collection對象的優勢145
疑難79如何利用VBA對工作簿進行減肥145
正確刪除單元格,減少檔案體積146
疑難80如何讓數字在文本與數值之間快速切換147在文本與數值間切換的VBA思路148
疑難81如何將“/”分隔的數據進行匯總149
以“/”為分隔設定取其左右字元的思路最佳化150疑難82可以對指定區域進行自動更正嗎150
利用Replace方法實現限定區域的自動更正151疑難83可以對包括“星期”的所有工作表同時添加公式嗎151VBA在單表和多表中輸入公式的區別152
疑難84在VBA中如何控制字元朗讀153
利用Speech朗讀字元153
疑難85能實現貼上數據時跳過隱藏區嗎154
如何確定單元格是否隱藏156
疑難86如何對相同值進行標識著色156
疑難87如何根據工資計算零鈔數量159
獲取選區第一列及已用區域的交集160
疑難88如何批量實現區域數據真正四捨五入161
通過round解決數據顯示的假象162
疑難89如何最佳化具有大量公式引用的數據計算163公式與VBA在計算上的區別164
ClearContents與Clear的區別164
3.3單元格合併技巧164
疑難90可以在表格中合併同類項嗎165
利用DisplayAlerts屬性關閉合併單元格的提示及加快執行速度166疑難91如何實現按產品合併產量數據表166
利用變數暫存數據,代替輔助區168
疑難92如何實現合併時保留所有數據,而拆分時可以還原168看不見的特殊字元的套用171
疑難93可以選擇當前表所有合併單元格嗎171
定位合併單元格172
疑難94如何取消所有合併區域並且對所有單元格填充數據172合併區域的賦值方式174
疑難95合併單元格後仍然可以正常引用區域中的所有值嗎174複製合併屬性175
疑難96如何將指定單元格合併連結到一個選區175對一個區域追加連結177
疑難97跨頁合併單元格可以重新合併從而適應分頁列印嗎178判斷合併單元格是否跨頁179
疑難98可以讓合併單元格自動換行嗎180
工作表事件代碼與普通過程的區別181
3.4報表合併與拆分181
疑難99如何合併所有工作表到一個表中182
讓複製數據時既去除公式又不影響數值的顯示狀態183疑難100如何實現多表合併匯總184
利用相對引用公式批量合併數據,避免使用循環185疑難101如何將多個工作簿中的所有工作表合併到一個工作表中186通過禁用工作簿重算提升代碼效率189
疑難102如何將多個工作簿數據合併到一個工作簿中189利用變數作為輔助進行條件判斷193
疑難103如何實現報表拆分193
利用複製格式和複製數值實現完美複製,避免複製後顯示錯誤195疑難104如何將工作簿中每個工作錶轉換為獨立工作表197根據版本號決定檔案格式198
3.5單元格顏色的綜合套用199
疑難105Excel不同版本在顏色處理方面有分別嗎199不同版本中顏色差異對程式的影響200
疑難106可以對Excel2010的按顏色篩選再做擴展嗎201CurrentRegion與Usedrange對程式的影響204疑難107如何讓按顏色排序可以在Excel多版本間通用204借用輔助和調用老版本的Sort功能提升程式的通用性206疑難108如何將顏色分類重排且通用於Excel多個版本206將顏色屬性轉換成數據,輔助程式執行208疑難109可以按顏色對選區數據分類匯總嗎208
修改數據源與修改顏色在VBA事件中的差異211疑難110如何用函式對數據背景和字型按顏色匯總212通過Volatile讓函式聲明為易失性函式2133.6重複數據處理213
疑難111如何清空重複值單元格並標識214
countif函式在去重複值中的套用215
Countif函式的限制216
疑難112可以對重複出現的數據進行圈釋嗎216
利用CircleInvalid對單元格加圈,以及CircleInvalid的限制217疑難113如何篩選唯一值218
使用錯誤處理語句配合Collection取唯一值219疑難114可以在輸入重複值時提示用戶嗎219
通過EnableEvents提高程式的執行效率220疑難115如何對兩列數據提取相同項與不同項221
利用Transpose函式實現區域轉數組222
疑難116如何將多行多列相同者保留最後一個數據223雙層Transpose配套Join實現橫向區域轉字元串2243.7數據透視224
疑難117如何按職務或部門進行工資數據的透視分析225利用Excel2003的透視表代碼提升程式兼容性226疑難118如何實現多重數據透視227
利用Array嵌套創建多重透視228
疑難119如何實現同時透視多工作簿中的多工作表數據229解決VBA創建透視表名稱衝突的兩種方法2303.8練習與思考231
第4章報表列印232
4.1列印設定232
疑難120如何一次性設定“總表”以外工作表的頁腳232選擇工作表數量對頁腳的影響233
疑難121如何設定所有工作表的已用區域為列印區域233設定列印區域對數據列印的影響234
疑難122可以記錄工作簿的列印次數嗎235
借用檔案自定義屬性記錄列印次數235
4.2特殊列印格式設計236
疑難123如何設計工資條列印格式237
借用輔助列提升程式的容錯性240
疑難124如何列印工資卡240
引用普通工作簿和載入宏工作簿的區別243疑難125VBA可以實現對工作表分頁小計嗎243
利用宏表函式Get.Document(50)獲取工作表頁數246疑難126如何同時列印頂端標題和底端標題行246
計算第一個分頁符的所在行號253
疑難127可以借用圖片實現底端標題列印嗎253
Export與API方式將區域轉換成圖片的差異255疑難128如何製作針式多聯印表機列印格式的報表256利用HPageBreaks.Add實現手動分頁258
疑難129如何實現雙面列印259
中斷與禁止中斷程式260
疑難130可以僅僅列印活動單元格所在頁嗎260
利用Location計算分頁符位置,配合循環判斷當前頁序號2614.3練習與思考262
第5章函式開發263
5.1自定義函式基礎263
疑難131如何開發自定義函式263
Office版本對自定義函式參數的影響267疑難132函式與參數名規則如何267
自定義函式命名規則267
疑難133自定義函式在不同版本中有何差異269
顏色對自定義函式的影響271
5.2開發自定義函式271
疑難134如何對區域內混雜字元串中的數字求和271Excel公式對連續“+”的處理方式273
疑難135如何分離字元串中的數值、英文和漢字273正則表達式在字元處理中的優勢274
疑難136如何將文本混雜字元串及表達式轉換為值274正則表達式中數字、漢字的表達方式276疑難137如何按時間段計算匯總金額277
根據計算對象的規範性決定函式參數的個數278疑難138如何對具有分隔設定的數據分類匯總279
split函式產生的數組的特點280
疑難139可以取姓名的漢語拼音首字母嗎280
漢字與拼音首字母的對應關係282
疑難140超過15位的數字如何求和282
Excel對數據計算的長度限制284
疑難141可以擴展Vlookup函式實現返回多個結果嗎284利用Find替代Vlookup實現多個數據查找285疑難142如何利用函式創建檔案目錄286
自定義函式中如何表示活動單元格287
疑難143可以用函式連線記憶體數據和區域中所有文本嗎288利用ParamArray聲明不確定個數的函式參數290疑難144如何根據身份證號碼獲取出生日期、年齡和性別290身份證號碼所包含的個人信息292
疑難145如何將多個單元格中的人民幣數字合併且轉為大寫金額293聲明正確的類型最佳化函式效率294
疑難146如何計算兩個區域的不同項294
自定義函式對大區域運算的限制296
疑難147如何突破RANK函式排名的限制296
去重複值的3個方法297
疑難148如何實現按數據出現次數排序298
Collection與字典的區別300
疑難149可以用一個函式將人民幣大小寫相互轉換嗎300通過拆分法理解代碼302
疑難150可以用函式改變引用區域的值嗎303
利用自定義函式修改引用區域的值的兩種方法305疑難151如何對兩個以逗號分隔的亂序字元串比較異同306Split函式嵌套套用從字元串中分別獲取品名與數量307疑難152可以利用函式添加數據監控嗎308
借用函式的易失性實現自動執行,類似於工作表事件309疑難153可以讓函式的兩個參數全是可選參數嗎310將單個參數聲明為可選參數的方法311
疑難154可以利用函式批量對工作表命名嗎312
借用類模組將工作簿級事件提升為應用程式級事件314疑難155如何讓自定義函式運算結果是一個數組314函式返回數組的條件316
5.3自定義函式的管理316
疑難156如何對自定義函式添加說明316
通過MacroOptions定義函式的幫助信息318疑難157如何對自定義函式的參數添加幫助318
借用REGISTER為自定義函式添加參數說明及分類321疑難158可以將載入宏中的自定義函式複製到活動工作簿嗎322判斷用戶的設定是否允許訪問VBA工程325疑難159如何封裝自定義函式,使其代碼不可查看325利用vb6.0企業版封裝自定義函式328
5.4練習與思考328
第6章檔案目錄329
6.1檔案管理329
疑難160可以實現檔案雙向備份嗎329
利用SaveCopyAs備份檔案330
疑難161如何讓檔案使用一次後即自我銷毀331
檔案“自殺”的條件331
疑難162檔案有哪些屬性,如何控制它們332
GetAttr函式搭配and運算符判斷檔案是否具備某屬性333疑難163如何刪除指定目錄中一年前創建的檔案334疑難164可以刪除18個月沒有使用的檔案嗎335
用DATEDIF計算檔案閒置時間的技巧336
疑難165如何對檔案批量重命名336
獲取檔案名稱的方法338
疑難166可以在收藏夾中對當前工作簿創建捷徑嗎338獲取收藏夾地址的方法339
疑難167文本檔案與Excel如何批量轉換341
文本檔案與工作表的相互轉換342
疑難168如何實現將指定檔案作為附屬檔案傳送郵件343Outlook的前期綁定與後期綁定344
6.2目錄管理345
疑難169如何瞬間刪除D糟中所有空資料夾345
將代表磁碟的字元串轉換成磁碟對象的方法346疑難170如何獲取C糟以外所有磁碟的檔案目錄列表346通過FSO對象判斷某磁碟是否存在347
疑難171如何讓多版本Excel可以隨心所欲選擇打開方式348將Excel捷徑導入“Sendto”資料夾349疑難172如何批量創建以本月每日日期命名的資料夾350利用DateSerial的糾錯功能計算本月天數3516.3練習與思考351
第7章圖表設計352
7.1圖表編輯352
疑難173如何利用快捷鍵對選區創建圖表352
對宏指定組合鍵的方式及特點355
疑難174如何批量修改圖表標籤355
操作圖表標籤的條件359
疑難175如何批量移位標籤359
移點陣圖表標籤的限制362
疑難176如何對圖表系列設定條件格式362
填充圖表系列的兩種方法365
7.2多表管理366
疑難177如何將所有圖表大小調整一致且對齊366
圖表名稱的特點367
疑難178如何將所有圖錶轉換成JPG檔案保存到資料夾368將圖片轉換為圖片的思路369
7.3練習與思考369
第8章圖形對象370
8.1圖形對象的基本操作370
疑難179可以僅僅刪除E列存放的圖表以外的圖形對象嗎370通過TopLeftCell和BottomRightCell定點陣圖片位置371疑難180如何將工作簿所在路徑的圖片全部導入工作表371Pictures.Insert與Shapes.AddPicture的分別373疑難181如何讓所有圖形對齊所在單元格左框線374通過統一TopLeftCell屬性對齊圖片374
疑難182如何實現所有圖片剛好適應所在單元格大小與邊距375行高與列寬的特點376
疑難183如何將選區轉換成圖片並保存到桌面377
借用圖表中介實現區域轉圖片379
8.2批註的高級套用379
疑難184如何利用快捷鍵在單元格插入當前日期的批註379通過設定AutoSize屬性使批註框自動調整大小380疑難185如何將指定列的數據批量追加到批註中381強制返回選區第一列的3種方法383
疑難186如何實現指定區域批量創建歷史記錄於批註中383讓代碼套用於所有工作簿的方法386
疑難187如何批量導入圖片到單元格的批註中386
對批註框設定背景的條件388
疑難188可以對批註進行替換嗎388
“UnloadMe”、“End”和“ExitSub”的區別391疑難189如何在所有批註末尾追加當前日期391
利用isdate判斷批註最後一行是否為日期392疑難190如何批量修改批註的外觀392
聲明正確的變數類型及防錯394
疑難191可以改造默認的插入批註功能嗎394
正確引用右鍵選單395
8.3圖形對象綜合套用396
疑難192可以讓圖片跟隨滑鼠移動嗎396
利用Doevents函式展示動畫過程398
疑難193如何創建圖片目錄與批量插入圖片398
單元格的行高與列寬限制401
疑難194如何利用窗體預覽圖片402
控制項背景圖片的3種顯示方式404
疑難195VBA中的窗體能否轉換成圖片保存在工作表中404調用API函式調用截圖的快捷鍵405
疑難196可以在工作表中導入GIF動畫嗎406
播放GIF檔案時不能將檔案嵌入工作表408疑難197如何實現輸入品名時查看當前路徑中的同名圖片408利用API計算圖片檔案的長與寬409
疑難198可以讓滑鼠指定圖片時放大圖片嗎410
利用API函式獲取滑鼠指針坐標413
疑難199如何實現圖片批量導入並自動排版列印413利用FSO技術中的GetExtensionName獲取檔案後綴名4178.4練習與思考417
第9章窗體控制項418
9.1ActiveX控制項套用418
疑難200可以利用列表框強化數據有效性嗎418
列表框相較數據有效性的靈活性420
疑難201如何利用複合框引用區域的唯一值421
複合框調用數據的兩種方法及各自優勢423疑難202利用複合框和列表框實現二級列表423
MouseMove事件獲取列表框的值的技巧4269.2窗體設計技巧426
疑難203如何實現利用快捷鍵啟用和關閉窗體426
KeyPress事件可以檢查的按鍵及例外項目428疑難204如何用一個窗體展現多個不同內容429
分頁顯示的兩種方法432
疑難205如何用一個按鈕執行多個功能433
利用PasswordChar屬性隱藏敏感字元435疑難206如何讓日期輸入器窗體緊跟活動單元格435影響窗體Left、Top屬性的因素436
疑難207如何設計五角星窗體437
顯示五角星窗體的方法440
疑難208VBA可以設計彩蛋嗎440
MouseUp事件中Shift參數的作用442
疑難209如何通過窗體控制實現工作表隔行插入行442通過Shift參數控制Insert方法的單元格移動方向446疑難210如何在窗體中開發右鍵快捷選單446
創建自定義選單的基本思路448
疑難211窗體可以利用滑鼠自由調整大小嗎449
利用API讓窗體可以自由拖動的思路449
疑難212在窗體Show狀態下可以調整控制項大小嗎450MouseMove事件中各參數的作用452
疑難213在窗體Show狀態下如何批量設定控制項格式452可修改控制項字型格式的幾種對話框454
疑難214在窗體Show狀態下如何調整控制項位置455
MouseMove事件中Button參數的套用技巧456疑難215如何檢測窗體中文本框的數據有效性456
對文本框設定數據有效性檢驗的優勢457疑難216如何設計懸浮感應式窗體458
通過調整邊距控制窗體的動態效果460
疑難217可否瞬間備份所有窗體460
VBA工程中的子對象分類461
疑難218能否對窗體中所有控制項同步縮放462
窗體的Zoom屬性的特點464
疑難219能否通過代碼生成窗體及控制項464
用代碼操作代碼、窗體和模組的優缺點4669.3窗體與工作表之數據互動467
疑難220可以實現多工作表篩選並將結果導入窗體嗎467列表框的ColumnHeads屬性的特點469
疑難221多工作表數據輸入窗體如何設計469
利用SetFocus方法控制焦點的轉移472
疑難222如何開發日曆工具箱472
Excel對日期計算的限制476
疑難223如何實現多條件電話查詢476
“TextBox1_Change”事件與“TextBox1_Exit”事件的異同478疑難224如何開發複選框批量管理工具478
認識複選框481
疑難225如何讓窗體控制項自適應工作表數據變化481用代碼創建新控制項483
疑難226可以讓列表框具有拖放功能嗎484
控制項拖放相關的事件485
本例僅支持一次拖放一行數據486
疑難227如何開發四則運算自動出題機486
通過Rnd函式產生指定範圍的隨機數488
9.4開發動畫窗體489
疑難228如何讓窗體中的文本框循環滾動489
控制動畫速度的兩種方式491
疑難229窗體中可以播放GIF和Flash動畫嗎491
Excel播放GIF的原理493
疑難230如何讓窗體產生百葉窗動畫493
疑難231如何設計精美框線且帶動感的窗體495
網頁設計與VBA496
疑難232如何設計動態的啟動畫面497
網頁動畫的基本語法499
疑難233如何讓窗體中產生跟隨滑鼠指針的文字動畫500VBA設計動畫的限制501
9.5練習與思考501
第10章外掛程式開發502
10.1定製選單與工具列、功能區502
疑難234如何定製新選單、工具列與功能區502
載入宏的特性與安裝方法506
疑難235可以任意組合內置命令嗎507
CommandBars對象的ID參數的作用508
疑難236如何改造內置命令的功能509
修改OnAction屬性替換內置功能510
疑難237可以提取所有內置圖示及其編號嗎511
ActionControl屬性的作用513
疑難238可利用選單控制分頁符、零值和批註的顯隱嗎513Excel不同版本的自啟動路徑515
疑難239如何僅僅利用選單創建工作表目錄516
讓一個過程執行多個選單執行多個功能的方法518疑難240如何讓選單具有感應功能518
State屬性的特點與套用520
疑難241如何讓選單和功能區中顯示自己的照片521控制功能區中圖片庫分布方式的4個參數524疑難242如何設計可單選與複選的新工具列選單525具有單選與複選特效的圖示組合528
10.2開發通用外掛程式528
疑難243如何開發定位工具箱擴展Excel定位的功能528Excel定位的限制533
疑難244如何開發通用的多區域複製外掛程式534
疑難245如何開發單元格批量合併外掛程式535
操作大面積區域時利用警告框提示用戶538疑難246可以利用外掛程式輸入常用VBA代碼嗎538
計算當前代碼行的行號542
疑難247如何利用外掛程式刪除當前工作簿所有代碼543ActiveWorkbook與Thisworkbook的分別544疑難248如何利用TreeView控制項打造工作簿瀏覽器545ImageList控制項的特點與作用547
10.3封裝DLL外掛程式548
疑難249如何封裝數值與文本互換的DLL外掛程式548
使用VB6.0封裝Dll的4個重點554
疑難250如何設計字元串分離與表達式計算外掛程式555利用VB開發功能區的優勢563
10.4練習與思考563
第11章工資管理系統564
詞條圖冊更多圖冊

相關詞條

相關搜尋

熱門詞條

聯絡我們