如果你是學習Excel的朋友,對VBA這個應該概念不陌生吧?

2020-12-17 Excel教案

我們應該都知道Excel VBA的功能比較強大,但是對於剛開始學習的我們來說,面對那一串串英文代碼,你是不是看得頭昏腦脹?想去學習,然和茫然久久不能找不到學習入口?

在這裡,和大家分享自己的學習經驗,和大家一起學習,共同進步。對了,還要告訴大家,我也是初學者,不是高手,如果有什麼說得不對的,希望大家及時指出。我的目的並不是教學,而是期望創造一個學習Excel VBA的氛圍! 記住一個共同的目標——掀開那層神秘的面紗,看看VBA的真實面目。

首先我們要學習什麼是VBA?就的先去了解他的真實面貌,VBA是Visual Basic For Application的簡稱,具體說來,可能讓幾天幾夜也都說不完,你應該也知道VBA是建立在Office中的一種應用程式開發工具,其實知道這也就夠了。

Excel本身的內置函數其實已經很強大了,甚至有人說,只要學會二三十個函數,就已經可以滿足普通用戶日常的工作需求。那我們為什麼要學VBA?

是的,如果只需要滿足一些普通的工作需求可能永遠也不會用到VBA,但在實際應用的過程中,人們的操作卻越來越大,需要也越來越高,這時候就需要用VBA來對Excel進行二次開發了,VBA可以有效地自定義和擴展Excel的功能。但有一點想要告訴大家,VBA功能很強大,但並不是萬能的,也並不是所有工作都需要用VBA來解決,也並不是所有工作用VBA來解決都會很簡單,這要根據實際情況而定,有些工作你用VBA來解決的話相反會變得很麻煩。

換一種語言表達出來說VBA不是一種程序語言吧, 不公平, 它的確提供了程序語言能完成的功能; 說它是吧, 和現代程序語言相比功能又很不完整。說它不是面向對象的語言吧, 它有類模塊, 提供部分類的功能; 說它是面向對象的吧, 類的最只要的特點又不具備。當然了,這些主要都是從VB6繼承過來 的"遺傳病"。所以通常的結論:"基於對象, 但非面向對象"。MS早就停止VB6的升級了, MS對VB6的放棄直接導致了VBA的功能不會在本質上變得更加強大, 但未嘗不是一件好事,作為使用者不用整天跟著屁股後面學習新的功能。事物發展就是這樣的,在解決了一個問題的同時又帶來另一個新問題。

設計VBA就是面向"終級用戶"類似於數據透視表的"office 高級應用工具", 以腳本的形式存在, 用來達到"自動化驅動office來完成規律性, 重複性任務"的目的。嚴格來講VBA不是為了"開發"而是為了"應用", 並不是說完全做不到二次開發, 但和 MS 設計 VBA 的本意不相符甚至是背離。更加不是"無所不能"的程序語言,有太多的事是 VBA 實現不了的,嚴格來說它都不是一種程序開發語言,只能算作腳本。他和API函數結合可以做到,很多VBA不能完成的事情。

PS:API函數當然有用,開發圖形庫必須用它!

我們下面說說VBA的優缺點:

1:作為程序語言和其他開發語言比較,VBA的特點:

(1)"天然"強大的輸入輸出平臺,Excel的控制項功能非常強大

(2)使用便捷,無需搭建任何環境,隨時可以用,無需保存,編譯,即可運行;代碼數據一體化(同時也是"缺點"),發布簡單,無需運行環境。

(3)簡單易懂,門檻低,學習周期短

2:VBA的"缺點"

(1)不好封裝

(2)需要宿主解釋器的解析,所以速度慢

(3)安全性差

(4)無法提供面向對象的結構式編程方式

(5)單線程

PS:上述"缺點"基本上是腳本語言具有普遍性的"通病",顯然VBA就不是針對完成上述功能而設計的。VBA最大的缺點明明就是不能在windows以外的平臺使用,像Mac上的Excel,雖然有vba,但是基本只能發揮30%不到的功能,字典這種需要調用windows系統裡面功能的東西就沒法用了,包括正則表達式,調資料庫、fso文件之類的東東。

新手學習的幾點建議

1:調試 地方窗口,立即窗口,觀察窗口,F1(幫助),F2(屬性方法),F8(分步執行)途中診斷:斷點,stop等等。

2:分拆 語句分拆長而難懂的句子分拆成基本單元,利用調試功能一個個解決,很容易就理解了它的含義。

3:耐心 學習目的明確≠急於求成。學習的進程總是遵循漸進式的規律,跳躍式的一夜暴富只能是空中樓閣,所以耐心在學習過程中就顯得尤為重要。

我們每次如果要開始寫程序,首先先想下正常處理數據的過程,然後在轉換成vba數據處理的過程,僅此而已。每次用到的Excel VBA無非就是以下幾種方法:

(1)對象的使用方法,當我不知道代碼怎麼去寫的時候,我們知道錄製宏就可以,然後可以調用Excel內置應用;

(2)程序語法類:循環,判斷,字符串,文件操作等;

(3)數據處理的方式,數組,字典

(4)界面,系統等等;這個用的比較少。

(5)類模塊;

學會了循環,判斷,字典,能應用到日常工作中,將繁瑣重複的部分交給電腦,就沒繼續深入研究了,因為夠用就好學以致用最重要,會的再多用不到也是白搭,一個人精力有限不可能所有東西都學會。

另外需要說的一點是,其實VBA效率不算高,複雜程度不算低,總體給人感覺一般。但是任何一個工具只要熟練了,那就是你最好的工具。相信,實踐,理解,這可謂是工具認知的一條康莊大道。

我們學習Excel VBA的內容充其量內容就這麼多了, 學習VBA是可以有止境的, 差不多的時候是完全可以收手的, 就算這些內容也完全不用全部學會, 夠用就可以收手。寫這個程序,其實最主要的是思考如何用程序語言去完成,因為VBA其實操作方法和語句不多,知道如何操作了,就知道如何去寫代碼。另外送一句話給我們的初學者,看書上的代碼再多,再簡單,也要自己嘗試去寫。我們不怕遇到錯誤,就怕你不敢去邁出那一步。只要你邁出了前進的那一步,你堅持下去了,就會發現勝利終究會屬於你的。

用一句話來總結:"程序的本質是用機器來解放勞動力,而不是用勞動力解放機器!"

唯有不斷學習,才能不被淘汰!

相關焦點

  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • Excel vba 利用定義名稱實現用戶登錄功能
    (文章附代碼,參考學習)定義名稱在Excel中運用很方便,對於一些固定內容選擇用定義名稱來做下拉列表十分好,平時在做表格的時候經常會用到。如何用定義名稱來對用戶進行管理其實,名稱以隱式狀態存儲,一般情況下也不會去檢查是否存在,特別是一些剛學習excel的人來說,對此也並不十分了解。所以,在隱蔽性來說,有一點點可取之處。
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    參數 inplace=True ,表示直接在原有數據上操作,如果不設置這個參數,那麼就需要寫 df=df.sort_values(['班級','排名'])來看看結果。就是最左邊的那一列數字每個 DataFrame 都會有這樣的 index,不管你怎麼操作他,這個 index 都不會改變。因此我們可以利用 index 定位 excel 的單元格,然後通過 xlwings 標記底色就好了。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    只需要在 freq 參數傳入字母即可表達你希望按日期的哪個部分進行分組。比如:"M" 表示按月,"Y" 表示按年。最後,定義一個方法,讓vba調用。如下圖:這個方法的上方套上一個 xlwings 的裝飾器 @xw.func。
  • 在Excel中執行我們的Access,你或許可以使用VBA來完成自動化
    我們如果想要從Excel訪問其他的Office程序的話,那麼需要了解一下,綁定這個概念。為了可以順暢的訪問其他的Office程序,我們需要將Excel和另外的程序綁定起來,比如我們的字典的綁定,分為早期綁定和後期綁定。我們稍微舉一個例子吧!其實他們各有優點,我們會在講述字典的時候,詳細說明一下。
  • EXCEL學習的順序是什麼?
    一、首先要了解excel的各大功能,基礎的有複製,粘貼,數據有效性,條件格式;然後就是函數,函數要學sumif,sumifs,countif,countifs,vlookup,再深點就學offset,match,index等等。
  • 你天天用的excel也可以用來畫畫,這個工具3分鐘搞定!
    最近小妞迷上了一位77歲日本老大爺,他從畫將近20年,讓我敬佩的是他畫畫的工具,居然是我們每天都在用的excel,這幾天小妞打算寫一篇老大爺的傳記給大家學習一下滴,記得隨時過來看看啦。今天就針對excel主題,告訴大家這個用excel就能畫畫的技能,這個說出都很有面兒有木有。與代碼有一些淵源,這個工具(文末有獲取方式)可以把你選取的任一的圖片,在2-3分鐘之內用excel畫出來。
  • Excel VBA 不可一世的宏中,基本數據構成你知道多少
    下面我們說的有3個方面的知識點:常量變量字符串日期1.以上這個4點我們慢慢給你講講,我們先來說說常量,常量這個詞很好理解但是我們一旦聲明了變量,如果你還試圖去改下他的值,那麼這個時候就會報錯。還有另外系統自帶的常量,也就是VBA默認的常量,其實VBA提供了很多自己定義的常量,我們可以直接拿過來使用。如下圖所示,xlPortrait其實他也是一個常量,值為1.
  • Excel vba工作表事件【實現快速自動隱藏工作表】
    ,則提出原因,本程序錯誤主要是表格中文字跟實際工作表名稱不一致。    MsgBox "不存在" & m & "工作表"End IfEnd Sub如果不用工作表事件實現批量隱藏工作表。
  • VBA編程理論學習之談
    所以,在實際應用中遇到哪些對象就對應去掌握這些對象的方法和屬性就可以,不需要完全學習。既浪費時間又沒有意義。鑑於對Excel的整理和學習,很有必要對這個月來的學習經過總結一下。有些是解決基本應用需求,也有一些是Excel vba基礎的對象以及屬性功能介紹。總的來說,這個月有一些進展,也有一些心得和知識積累。有幾篇比較不錯的文章持續得到展示和瀏覽,說明這方面還是做到了大多數關注。
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • vba字典功能介紹,Excel辦公效率就這麼高
    vba字典功能十分有用,如果對其它編程有一定了解,那麼對於字典也不陌生,它代表著高效和強大的數據處理功能。字典功能介紹那麼如何在vba中運用字典功能?首先,想用就必須有這個東西,如果擁有,這就用到下面這條語句了:Set DicObj=CreateObject("Scripting.Dictionary")'創建字典沒錯,就是創建字典,其中DicObj是首先申明的一個 Object變量,如:dim DicObj
  • EXCEL學習筆記之VBA
    >a1:A6」).Value=Application.WorksheetFunction.trasnpose(arr)『transpose函數為行列轉置的作用,如果只有一行不需要使用 4、在vba中直接使用工作表函數要加前綴Application.WorksheetFunction
  • Excel VBA 新手入門學習,只要你記住這些基礎知識就可以
    那麼我們應該如何去學習Excel VBA的更多知識呢?如果你是第一次聽到VBA這個概念的話,也許你對其中的對象,集合弄暈了。其實你不用慌,冰凍三尺非一日之寒,我們是需要徐徐漸進的,你也不可能一天就學習他的所有知識。在學習的路上你並不孤單,其實我們是有很多資源去學習的。
  • Excel VBA從新手到高手系列課程
    其中新手篇時長12小時39分;進階篇時長7小時46分;高手篇14小時04分;請大家注意安排學習計劃及合理分配學習時間。       三、   教學目的:本課程的目的和任務是使學員掌握Excel VBA的基本概念,基本原理及技術應用,讓學員在VBA應用方面形成知識體系,培養學員應用VBA解決實際問題的能力。
  • VBA代碼大全030:用vba強制關閉word應用程式
    我們有時候需要從word中提取數據到excel中。 這時候一般的套路都是在excel vba中創建word應用程式實例,然後一番操作以後關閉word應用程式。amp; "\abc.doc") '*********** '接下來是一段word數據的提取操作 '*********** '關閉打開的文檔 oDoc.Close (False) '退出Word應用程式 oWord.QuitEnd Sub這裡會有個問題,就是最後的 oWord.Quit 好像是把word應用程式關閉了,但是事實上往往經常是關閉不成功的
  • Excel製作二維碼生成器,會vba就是不一般
    二維碼生成器,想必不陌生,用Excel vba 可以很好地生成二維碼。在一些信息記錄過程當中,也有一些實際的用處。下面介紹一下如何用vba代碼生成二維碼。下面看下效果圖左側是生成的二維碼,右側是一個文本框,輸入要二維碼存儲的信息。
  • excel如何實現更改數據就自動填充顏色的功能?你需要用到它
    Hello,大家好,工作中是不是有遇到這樣的情況,當我們做好的表格發給領導後,領導修改了下說可以了,但是因為數據太多,不知道修改了哪裡,十分的鬱悶,今天就跟大家分享下在excel中如果別人更改了單元格就會自動的填充顏色實現這樣的功能我們需要使用
  • 用Excel VBA將生產工藝流程圖形化
    甚至可以在組合的時候,加入完成各個流程所需要的時間的信息,如果加入了完工數量,就是企業生產的實時看板功能了。現在就是要將這些文字,通過圖形化的流程很直觀的表述出來,由於每個產品都有不同的工藝流程,這時候一個個畫流程圖就顯得效率低下了,而且中途加入某個流程節點流程圖得重新繪製。 平臺是工具,還需要借鑑傳統軟體編程的技術,特別是軟體工程技術,再結合管理去做應用開發。
  • WPS教程:excel新手入門VBA功能使用介紹
    Excel教學:今天和大家分享一下excel中vba的使用方法入門,相信很多使用該軟體的朋友們對此都很感興趣,下面就和大家來分享一下,希望可以幫助到大家。4.輸入如圖所示的代碼:5.保存文件,按下F5執行,找到我們編輯的這個宏,【計算銷售額】,然後點擊【運行】寫在末尾——總結一下WPS用起來還是十分簡單的,後面也會出更多的EXCEL系列教程和其他知識分享。