2019年10月22日星期二

001 別怕 Excel VBA其實很簡單 第1章 走進Excel VBA的世界

申明本站飛宇網 https://feiyetopro.blogspot.com/自網路收集整理之書籍文章影音僅供預覽交流學習研究,其[書籍、文章、影音]情節內容, 評論屬其個人行為, 與本網站無關。版權歸原作者和出版社所有,請在下載 24 小時內刪除,不得用作商業用途;如果您喜歡其作品,請支持訂閱購買[正版]謝謝!


別怕  Excel VBA其實很簡單


1章 走進Excel VBA的世界




VBA就像一座神秘的城堡,對很多人來說都是神秘的。很多人想走進VBA的世界,卻始終找不到打開大門的鑰匙。
什麼是VBA 
怎樣學習VBA 
面對這些問題,讓我們從身邊開始,一起探索,一起解答。


1.1 不會Excel的人,真傷不起


1.1.1 做不完的表



資料獲取、資料處理、資料分析…這是小張每天都在做的工作。老闆的需求和基礎資料一樣每天都在改變,而小張做表的速度卻永遠也跟不上老闆敏捷的思維。
不同的資料,相同的操作。小張感歎:“和數據打交道的日子,真煩!”
單位來了新同事,接手小張平時的工作。

1.1.2 神速的“超人”



終於告別上萬條的資料,離開亂七八糟的報表,脫離“苦海”的日子,小張的日子要多舒心有多舒心。可是…
電話裡,老闆那可以撐爆整幢大樓的讚揚聲和新同事靦腆的笑容,讓小張心裡很不是滋味:“一個小時和一星期,中間的差距不僅只是時間。不會Excel的人,真傷不起!”

1.1.3 你是怎樣做工資條的


小張決定向新同事取取經…


同事打開一張工資表,如圖1-1所示,讓小張把它做成工資條,如圖1-2所示。

圖1-1 工資表

圖1-2 工資條





小張熟練地拿起滑鼠,選中工資表頭所在行→複製→選中第二條工資記錄所在行→按一下右鍵→插入複製儲存格。
完成後,又按同樣的操作進行第三條,第四條…
新同事看完後,笑了: “如果是1000條記錄的工資表,這樣做需要多久?”
小張苦笑,也只能苦笑。
工作的內容不少,但都是重複的操作。而這種重複不但枯燥而且費時,儘管小張天天時時刻刻都在做表,卻永遠也跟不上老闆的節奏。

1.2 走自己的“錄”,讓別人重複去吧



新同事的建議讓小張感到很茫然。
面對小張滿腦子的疑問,新同事耐心地給他解釋,並示範操作過程…

1.2.1 什麼是宏


就像用攝像機錄下來的視頻,在Excel裡,巨集就是Excel使用者使用巨集錄製器錄下的一組操作。
選中工資表頭所在行→複製→選中工資記錄所在行→按一下右鍵→插入複製儲存格,這是小張製作工資條時重複的操作。


1.2.2 用宏錄下Excel操作


錄製巨集前需要進行一些簡單的設置,如圖1-3所示。

圖1-3 錄製巨集前的設置

完成上述設置後就可以錄製巨集了,如圖1-4所示。

圖1-4 用宏錄下Excel操作

這樣,宏就錄製好了。

1.2.3 讓錄下的操作再現一遍


錄製完成後,通過下面的方法運行宏,如圖1-5所示。

圖1-5 執行宏

如果要繼續插入新的工資表頭,就繼續執行宏。


練習小課堂
學會使用錄製和執行宏代替手工完成重複操作後,小張很高興。他發現工作中很多問題都可以借助宏來提高工作效率。
可是,他不明白相對參照和絕對引用的區別,你能分別錄製不同的宏,執行它們,找到它們之間的區別嗎?


參考答案
絕對引用:如果使用絕對引用,在執行宏的過程中,無論選中了哪個儲存格,宏都在特定的儲存格中執行錄製的操作。
相對參照:如果使用相對參照,在執行宏的過程中,將以作用儲存格為A1儲存格,宏在相對於作用儲存格的特定儲存格中執行錄製的操作。如果你想讓錄製的巨集可以在任意區域中使用,就使用相對參照。

1.3 還可以怎樣執行宏


【宏】對話方塊裡的“執行”按鈕就是運行巨集的開關。不夠方便,不夠快捷,是這個開關的缺點。如果你不喜歡這個開關,可以選擇其他執行宏的方法。

1.3.1 給宏設置快速鍵


錄製巨集前,可以在【錄製新巨集】對話方塊裡為巨集設置快速鍵,如圖1-6所示。

圖1-6 錄製巨集前為宏設置快速鍵

也可以在錄製巨集後進行設置,如圖1-7所示。

圖1-7 錄製巨集後給宏設置快速鍵

給宏設置快速鍵後,就可以按下相應的複合鍵執行宏。
注意:因為給宏指定的快速鍵會覆蓋Excel默認的快速鍵。例如:把<Ctrl+C>指定給某個宏,那在Excel中按下<Ctrl+C>複合鍵將不再執行複製操作。

1.3.2 將巨集指定給按鈕



不便記憶,不易上手。快速鍵雖快卻不實用。
無論出於什麼目的,都應儘量讓設計的表格顯得直觀一些。


拿過電視機的遙控板,掃一眼就知道該按下哪個按鈕來加減聲音,按下哪個按鈕來調節頻道。
如果你擔心忘記為宏設置的快速鍵,可以繪製一塊直觀形象的“遙控板”,通過按一下按鈕來執行巨集。圖1-8所示為將巨集指定給按鈕的方法。

圖1-8 將巨集指定給按鈕

如果是已經添加的按鈕,可以用滑鼠按右鍵它,在右鍵功能表中執行【指定巨集】功能表命令打開【指定巨集】對話方塊,再將巨集指定給按鈕,如圖1-9所示。

圖1-9 打開指定宏對話方塊

當按鈕呈編輯狀態(如果不是編輯狀態,可以先用滑鼠按右鍵它)時,按一下按鈕表面,更改標籤為“生成工資條”,調整按鈕的大小和位置,完成後按一下按鈕外的任意區域退出對按鈕的編輯,如圖1-10所示。

圖1-10 更改標籤後的按鈕

完成上述設置後即可按一下按鈕執行巨集,如圖1-11所示。

圖1-11 按一下按鈕執行巨集

還可以用同樣的方法將巨集指定給圖片或自選圖形等。

1.3.3 將巨集指定給常用工具列按鈕


將巨集指定給常用工具列按鈕的操作步驟如圖1-12所示。

圖1-12 將巨集指定給自訂工具列按鈕

還可以在右鍵功能表中對按鈕進行其他的設置,如更改按鈕的名稱、圖像等,如圖1-13所示。

圖1-13 設置自訂按鈕

完成後關閉【自訂】對話方塊,就可以按一下自訂的按鈕執行巨集了。

1.4 是誰“擋住”了宏


1.4.1 宏為什麼不能工作了


有時,打開一個保存有宏的工作簿或試圖執行一個巨集時,Excel會顯示如圖1-14所示的對話方塊,而並不執行宏。

圖1-14 禁用宏的提示對話方塊


這是小張遇到的一個新問題,他再次向新同事求助。


1.4.2 怎樣修改宏安全


修改宏的安全級的操作如圖1-15所示。

圖1-15 打開【安全性】對話方塊

如果希望錄製的巨集或編寫的VBA程式得到運行的機會,應將安全級設置為“中”或“低”。
如果設置為“中”,每次打開檔時,Excel都會顯示【安全警告】對話方塊,讓用戶選擇啟用或禁用宏,如圖1-16所示。

圖1-16 打開文件時的安全警告對話方塊

如果將安全級設置為“低”,打開檔時Excel不會給出任何提示並直接啟用工作簿裡所有的宏,如果工作簿裡帶有惡意程式碼,這樣做是非常危險的,所以,建議將安全級設置為“中”。
注意:在Excel 2003中,修改巨集安全級後需要關閉工作簿再重新打開它,修改才能生效。

1.5 VBA,Excel裡的程式設計語言


1.5.1 錄製巨集不能解決的問題



儘管可以錄下用戶在Excel裡的操作,但卻不能滿足用戶所有的需求。


1.5.2 讓工資條一“輸”到底


Step 1:查看已經錄製的宏,見圖1-17。

圖1-17 錄製的宏

Step 2:在第一行代碼“Sub生成工資條()”的後面添加兩行新代碼:


在最後一行代碼“End Sub”的前面添加一行代碼:

圖1-18 修改後的宏

Step 3:關閉視窗,返回Excel工作表介面,重新執行巨集,所有的工資條就全部完成了,如圖1-19所示。

圖1-19 一次性生成所有工資條

1.5.3 VBA程式設計,讓你的表格更加靈活


不管你是否知道應該怎樣修改和使用錄製的宏,但從小張的故事裡,應該看到了修改前與修改後的宏在工作效率上的差別。
實際上,在運行宏的過程中,我們總希望能自主地判斷和選擇需要執行的操作或計算,而錄製的宏並不能滿足類似的需求。這就要求我們對宏進行適當的修改,甚至自己動手編寫滿足需要的代碼,即:使用VBA程式設計。

1.5.4 什麼是VBA


VBA (Visual Basic For Application)是一種程式設計語言,是建立在Office中的一種應用程式開發工具。可以利用VBA有效地擴展Excel的功能,設計和構建人機交互介面,打造自己的管理系統,説明Excel使用者更有效地完成一些基本操作、函數公式等不能完成的任務,從而提高工作效率。
同你的名字一樣,VBA也只是一個名字,一種程式設計語言的名字。

1.5.5 宏和VBA有什麼關係


VBA是程式設計語言,巨集是用VBA代碼保存下來的程式。
錄製的宏只是VBA裡最簡單的程式,正因為如此,錄製的宏存在許多的缺陷:如無法進行判斷和迴圈,不能顯示使用者表單,不能進行人機交互……
要想打破這些局限,讓自己的程式更加自動化和智慧化,僅僅掌握錄製和執行宏是遠遠不夠的,還需要掌握VBA程式設計的方法,自主地編寫VBA程式。
這就是我們學習VBA的目的。


 大澳飛宇 註:  中國大陸叫 [宏] ,香港叫 [巨集] 。

0 留言:

發佈留言