1970年,出現了一種專門為普通人而設計的簡單易學的新語言Visual Basic,簡稱VB。甚至只需要了解150個左右的英語單詞,就能輕易的學會使用它。後來微軟吸收了VB的特性,改進了這門語言,用在Office系列軟體中,稱之為Visual Basic for Applications,簡稱VBA。VBA專門用來自動化重複性工作和批量計算等。VBA簡單易學,只要安裝了Office比如Excel,Word等軟體,就可以打開VBE編輯器編寫VBA代碼。1993年,微軟發布了Excel 5.0,並且首次在Excel 5.0中加入了VBA,以處理繁瑣而重複的工作。後面隨著Excel新版本的發布,VBA也在每一次更新中逐步改進。
其實VBA最初設計出來就是為普通人解決重複性任務和工作的,非常簡單易學。通過簡單的學習了解,加上Excel本身的錄製宏代碼功能,應用上就完全沒問題了。本來VBA就是為普通人設計的,其實本系列並不是要講VBA,如果想要學習,這方面的教材不少。我僅僅是整理了一些通用的代碼,不需要懂編程和代碼就可以使用,可以大大方便Excel數據處理工作。結合前面8篇基礎進價到公式高手系列,你會愛上強大的Excel的。
在這篇文章中,鄙人將會列出一些非常實用的VBA代碼,讓你的Excel表格處理工作大大加快,節省下很多的時間用來幹更有意思的事情。主要還是Excel中的大量重複性工作都可以自動交由VBA來完成。這些都是非常實用的代碼,拿來稍微改一下就能夠勝任你的工作。整理在你的私人工具庫裡面,用的時候直接調用,大大方便自己的工作。
雖然Excel可以通過錄製宏來生產VBA代碼,但是通過錄製宏的方式得到的代碼摻雜了太多我們並不需要的代碼,從而影響到運行效率。鄙人會通過實例結合的方式,甚至會教你如何調用VBA,讓它幫你完成工作。即使你沒有接觸過任何程式語言,也能通過這篇文章調用VBA。在你體會到VBA帶來的方便的同時,我希望你能同時打開新技能的窗戶,通過簡單學習即可拷貝網上大部分VBA為你所用。想想以後重複性數據整理啥的工作都可以通過VBA解決,提高自身競爭力的同時還能剩下時間。即使不會代碼也能更快速的處理電子表格,僅僅需要簡單了解和修改,其實大部分重複性工作都能勝任了。
好了,廢話不多說,以下介紹的這些代碼後面會提供一份BAS格式的文件,下載一個notepad++或者直接用記事本打開,複製你需要的那一段代碼到VBE編輯器運行。因為這是Excel VBA導出格式,你也可以下載下來,導入進你的Excel就可以使用。還可以把這個文件保存到微盤或者網盤啥的,隨時隨地使用,工具本身就是為了簡化工作的。也可以收藏這幾篇文章以備不時之需。
開始之前先簡單介紹在Excel中怎樣使用VBA,要在Excel中使用VBA,需要以下幾個步驟:第一步:需要打開你想執行VBA的Excel文件;第二步:按下ALT + F11組合鍵,就可以打開VBE編輯窗口。第三步:在窗口上找到」插入」->」模塊」,在這彈出來的這個編輯器裡面複製粘貼你要用的代碼就行了。
複製完你需要的代碼之後,通過以下幾個步驟來執行VBA。第一步:回到Excel主界面,點擊菜單欄上的「開發工具」菜單,或者按Alt+ F8。第二步:點擊「宏」,在彈出的對話框選擇你需要執行的宏。第三步:點擊運行即可。
萬一你的Excel主界面沒有開發工具這個選項卡呢?很簡單,點擊Excel的「文件」菜單,找到「選項」,點擊進去,找到「自定義功能區」,點擊它。在右邊找到「開發工具」,在「開發工具」前面的小方框打鉤。回到主界面就可以看到開發工具出來啦。現在的已經講解完畢,開始實用VBA代碼的講解。讓我們一起來學習如何使用這些實用代碼來幫助自己做重複性工作以及節省時間吧。
注意事項:你會發現裡面有一些單引號後面有文字,這個是注釋。解釋這段代碼用途的,不會影響到代碼的運行。比如下面這段代碼第一的單引號後面跟的文字就是解釋這段代碼的用途的。
1、下面這段代碼顯示所有隱藏的工作表,因為有時候我們的工作表太多了,所有會隱藏一些工作表。但是顯示的時候只能用滑鼠一個個顯示,不方便。下面這段代碼顯示所有隱藏的工作表,非常方便。
'單引號後面是注釋,這段代碼顯示所有隱藏的工作表Sub UnhideAllWoksheets()Dim ws As WorksheetForEach ws In ActiveWorkbook.Worksheetsws.Visible = xlSheetVisibleNext wsEndSub
2、下面這段代碼隱藏除活動工作表以外的所有工作表。
'隱藏除活動工作表以外的所有工作表Sub HideAllExceptActiveSheet()Dim ws As WorksheetForEach ws In ThisWorkbook.WorksheetsIf ws.Name <> ActiveSheet.Name Then ws.Visible = xlSheetHiddenNext wsEndSub
3、按照字符順序排序工作表。
'這段代碼按照字符順序排序工作表Sub SortSheetsTabName()Application.ScreenUpdating = FalseDim ShCount AsInteger, i AsInteger, j AsIntegerShCount = Sheets.CountFor i = 1To ShCount - 1For j = i + 1To ShCountIf Sheets(j).Name < Sheets(i).Name ThenSheets(j).Move before:=Sheets(i)EndIfNext jNext iApplication.ScreenUpdating = TrueEndSub
4、一次性保護工作簿中所有的工作表。
'一次性保護所有的工作表Sub ProtectAllSheets()Dim ws As WorksheetDim password AsStringpassword = "Test123"'將Test123替換成你自己的密碼ForEach ws In Worksheetsws.Protect password:=passwordNext wsEndSub
5、一次性取消保護所有的工作表。
'一次性取消保護所有工作表Sub ProtectAllSheets()Dim ws As WorksheetDim password AsStringpassword = "Test123"'將Test123替換成你設置的密碼即可ForEach ws In Worksheetsws.Unprotect password:=passwordNext wsEndSub
本篇就講這幾個吧,後面還會有1篇,總共有17段實用的代碼整理在這些文章中,全部放在一篇太長了,不方便查看。這幾個只是引子,後面會以目錄的形式排列,查看目錄是否有自己需要的代碼,然後進去複製粘貼使用即可。