編寫Excel VBA程序的10個技巧

2021-02-24 完美Excel

學習Excel技術,關注微信公眾號:

excelperfect

學會一些有趣的技巧或想法,能夠有效地提高ExcelVBA編程水平。下面是chandoo.org總結的編寫Excel VBA程序的10個技巧,我對其進行了整理,供有興趣的朋友參考。

 

技巧1:編寫代碼前先想想

解決一個非常複雜的問題的最佳方法就是思考。當你要使用VBA自動生成報告或者清理導入的數據時,只需將邏輯記錄在紙上,查看並理解問題的各個方面,將解決方案清楚地呈現在眼前。這對我們都很有用。

 

技巧2:使用錄製宏

Excel內置的宏錄製器是學習了解並處理新對象的好方法。即便是很有經驗的VBA程式設計師也一直使用它來錄製部分代碼,然後在此基礎上修改。記住,宏錄製器不一定會產生最佳或完整的代碼,但可以很好地提供如何為一組操作編寫代碼。

 

技巧3:使用立即窗口

Excel VBE有一個稱為立即窗口的強大功能,你可以在此處編寫幾乎所有的VBA語句並快速獲得結果。例如,打開VBE(在Excel中按ALT + F11鍵),然後進入立即窗口,輸入:?Activecell.Value,按回車鍵,立即顯示當前單元格的值。

 

技巧4:使用Debug.Print

在編寫代碼時,出錯是難以避免的。Bug是你的代碼沒有按照預期執行時的一種奇怪的稱呼。除非進行檢查,否則我們不知道代碼怎麼啦。此時,可以使用Debug.Print,在立即窗口中查看程序運行時變量的值,幫助確定Bug的位置。

 

技巧5:可能存在著一個解決你的問題的內置的方法

VBA有很多方法(Method)來做很多事情。如果你想編寫自己的代碼來反轉某些文本、基於分隔符拆分某些內容、找到2個單元格區域的交集或者在10秒鐘後執行某些操作,那麼可能是在編寫代碼之前就應該做的,因為有一個解決它的方法。每當你覺得自己正在為已經解決了好幾次的問題編寫代碼時,都有可能存在為此內置的一些方法或對象。

 

技巧6:分解工作成幾小塊

無論你面對的工作情況或問題有多複雜,都是由幾個較小的問題組成的。因此,將事情分解成較小的塊,這種編碼技術稱為模塊化。模塊化具有幾個優點:

1.重用:將大型程序分解為較小的部分後,可以在多個地方或其他項目中重用較小的部分。

2.易測試:較小的代碼片段易於測試和調試。

3.可維護性:可以輕鬆地維護較小的部分。一旦獲得更好的版本,就可以升級它們而不會造成太大的損失。

 

技巧7:不斷迭代

每當你嘗試使整個部門的工作自動化時,請退後一步,看看你可以具有的最小(但最有用)的功能是什麼。實施它,然後迭代添加新功能。羅馬不是一天建成的。不要想著一開始就大而全,這樣只會耗費過多的時間,甚至可能會半途而廢。此外,迭代開發還使你可以隨時停止,並且仍然會有一些有效的代碼。

 

技巧8:擁有至少一本好的參考資料

如果經常使用VBA,那麼手上應該至少有一本好的參考資料。一本好的參考書中包含有很多實用的技巧和信息,可以在編寫程序時隨時參考,也可以在平時經常翻閱,總是可以從中學到新的東西。

 

技巧9:接受挑戰

如果想要精通Excel或VBA,就要敢於接受具有挑戰性的工作,例如嘗試使用VBA自動化報表、試著簡化公式或者改進圖表。

 

技巧10:僅在需要時使用VBA

一旦你開始學習VBA,自然就會對其擁有的可能性感到興奮。但是請記住,過度使用它會使你的工作複雜化。建議:儘可能使用Excel內置的功能,Excel具有許多的內置功能可以解決各種日常問題(條件格式、數據透視表、公式、數據驗證、表單控制項等),僅當你覺得沒有一種簡單的方法可以單獨使用Excel解決問題時,才使用VBA。

 

在學習和編寫Excel VBA程序的過程中,你可能還會有很多發現,也會伴隨著很多新奇的體驗,記得及時總結,這也是快速提高編程能力的一個好方法。

 

[預告]在知識星球App:完美Excel社群中,即將推出電子書《100+個有用的ExcelVBA代碼》,相信對於學習和使用ExcelVBA的朋友來說,一定會有很好的幫助。

歡迎在下面留言,完善本文內容,讓更多的人學到更完美的知識。

歡迎到知識星球:完美Excel社群,進行技術交流和提問,獲取更多電子資料。

相關焦點

  • 【Excel書籍推薦】學Excel的VBA,什麼書還不錯?
    《Excel 2010 VBA入門與提高》Excel疑難千尋千解叢書《Excel 2010 VBA編程與實踐》,進階提升的Excel VBA實戰技巧精粹(修訂版),進階提升的有這3本excel vba方面的書籍,入門提升就不成問題了。
  • Excel VBA 實例(22) - 一鍵篩選其他工作表或工作簿的數據
    2、編寫vba事件,一旦班級名發生變化,則進行篩選。3、編寫篩選vba代碼。具體步驟1、設計下拉菜單。vba事件。Private Sub Worksheet_Change(ByVal Target As Range)    If Target.Address = "$B$3" Then        Call 班級    End IfEnd Sub3、編寫篩選vba代碼,即上面"call 班級"代碼中的
  • VBA 教程 | 編寫你的第一個 VBA 宏
    Excel VBA 中的基本概念啟用 Excel 開發工具設置宏安全性保存含 VBA 代碼的工作簿使用 VBA 編輯器進行 Excel VBA 開發今天的教程中,介紹如何從零開始,編寫一個 VBA 宏,即一個 VBA 過程。建議按照步驟自己動手實踐,手動輸入代碼並運行。
  • 快捷鍵開啟Excel程序,每天上班按三個鍵Excel自動打開,也可以用於其他程序哦
  • Excel VBA入門教程2 程序執行/工作簿/工作表/單元格
    上節課我們在Sheet1中編寫代碼,這節課我們到Module中編輯代碼:一,在工作表界面關聯和執行代碼1)在單元格中點擊快捷鍵Alt+F11進入到VBA 2)在工具欄中點擊 插入(insert)-->模塊(module),模塊1就出現了
  • Excel簡單抽獎程序的製作
    大家都知道Excel的功能是非常強大的,有的時候我們甚至可以用Excel寫程序,例如前幾年火遍大學宿舍的「三國殺」遊戲在最開始的時候就是用Excel製作。今天就和大家分享下如何用Excel來製作一個簡單的抽獎小程序,首先我們來看下最終效果: 想做出這樣的一個抽獎模型其實並不難,所用到的只有indirect、counta和randbetween3個函數公式以及一點vba宏的知識。
  • VBA代碼大全029:用vba修改excel單元格區域range對象的行高和列寬
    在excel中單個單元格的行高和列寬是與單元格所在的行的行高和單元格所在列的列寬一致的。我們無法單獨修改某個單元格的行高或列寬,只能通過修改單元格所在行的行高和所在列的列寬來實現單個單元格的行高和列寬的修改。
  • 史上最快的10個Excel實用技巧,一秒搞定Excel
    今天分享10個速度超快的excel小技巧,簡單實用!
  • Excel VBA(宏)有多強大?看了這幾個Excel功能就服了!
  • 領導開會看數據,這10個excel技巧你必須會
    負責演示的你,操作excel表格是手忙腳亂,還是得心應手。就在於你是否掌握下面幾個excel技巧。1、隱藏工具欄excel2007開始,工具欄佔用了上面四分之一的屏幕。如果你想在屏幕上顯示更多的excel數據,只需要點擊「功能區最小化」命令,即可隱藏工具欄。
  • 7種方法統計"大於10小於15個數"【Excel分享】
    大家好,今天和大家分享「7種方法統計"大於10小於15個數",一題多解,也是提高自己函數水平的一種好的方法一、解法1:1、公式:=COUNTIFS(A2:A5,">10",A2:A5,"<15")2.公式截圖:
  • 1秒,合併1000個Excel文件
    這次還真不是標題黨,來個合併演示讓大家看看:文件夾中有1000多個Csv格式的表格雙擊一下v.bat文件,神奇的一秒後,合併已完成。嘿嘿,貼心的蘭色用VBA編了一個excel和csv的互轉程序:使用方法:打開格式轉換程序.xlsm文件,分別在D4和 D6輸入excel文件存放路徑和csv格式文件存放路徑(以\結尾),然後點擊下面的按鈕即可轉換。
  • 【技巧1】快速啟動Excel程序
    點擊上方藍字關注 Excel在工程中的應用置頂公眾號,否則可能不能及時收到文章推薦給朋友,讓朋友也能收到免費的文章進入公眾號發送函數或工程應用的名稱關鍵字,即可免費獲取對應教程一、技巧描述不用點擊Excel程序圖標,而只需按一個快捷鍵,就可以快速啟動Excel程序。
  • C語言必背18個經典程序
    f2=f1+f2; /*前兩個月加起來賦值給第三個月*/ }}3、/*判斷101-200之間有多少個素數,並輸出所有素數及素數的個數。程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
  • C語言入門必備的18個經典程序
    古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?判斷101-200之間有多少個素數,並輸出所有素數及素數的個數。程序分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
  • Excel公式的10個小技巧
    本文特別整理了一些實用的公式相關技巧,以便幫大家提升寫公式的效率!1、不需要寫最後一個括號先從最簡單的開始,當我們輸完一個函數後,其實不需要輸入「反括號」的,Excel 會幫我們自動補全!雖然是小細節,但確實會讓我們方便些~ps:當缺少的是 2 個以上的括號,你如果直接按下回車時,Excel 會彈出一個提示框 ↓↓↓
  • 別人通宵做的Excel,我用VBA只要10分鐘搞定!(建議收藏)
    ☝☝關注回復」簡歷「,直接獲取專屬簡歷模板和撰寫技巧;不想錯過更多招聘信息和求職乾貨,點擊右上角,選擇「設為星標
  • 7 分鐘入門 Excel VBA,從此打開新世界的大門
    懶人Excel 將會繼續分享關於 VBA 語言、Excel VBA 對象、VBA 開發技巧等方面的文章,敬請關注。 之前用了幾篇文章介紹了宏、如何錄製宏、如何使用個人宏工作簿等,算是學習 VBA 的基礎。其中談到了宏與 VBA的關係,當時簡單總結為宏就是VBA。今天將介紹兩者的關係,並學習 VBA 的入門知識。
  • 10個特別好用但鮮為人知的EXCEL技巧
    Excel是我們日常工作中用的最多的辦公軟體,但大部分人都只會一些常規的處理方法,不會使用一些技巧,所以工作起來往往很低效。
  • VBA專題06-5:利用Excel中的數據自動化構建Word文檔—Excel與Word整合示例2
    學習Excel技術,關注微信公眾號:excelperfect示例