vba能解決Excel使用者90%以上的需求。其他語言能處理的Excel工作,vba100%能處理,其他語言不能處理的,vba多數能處理。其他語言處理Excel,其實是使用Excel的COM介面開發或者是第三方的Excel庫開發。前者的本質就是vba,只不過換種語言,而後者則有不同的選擇,但這些庫也會有各種的問題存在,相容問題、bug、功能不全、使用不方便等。
vba的優勢:
1.不需要額外配置程式設計環境,正常情況下裝了Excel都會有。
2.有宏錄製功能。宏錄製的功能對於初學者來說是一個非常有用的,能瞭解到陌生API的使用方式。
3.能夠呼叫Windows的API、其他語言編譯的dll。除了不能編譯成獨立的EXE,vb6能做的,vba基本都能做。
4.網上有大量充足的例子,學習起來相對容易。
5.除錯相對簡單。
vba的劣勢:
1.版本老舊、操作反人類的IDE。vba的編輯器真的非常難受。
2.寬鬆的語法。我剛接觸vba的時候,我是認為寬鬆的語法是非常舒服的。但其實對於程式設計的學習是不利的,特別在適應vb6語法以後再去學習c系列語言時,過渡時會有點難受。
3.效能問題。vba的處理效率是很低的,進行大量資料處理時間會非常非常長。
4.維護問題。程式碼是儲存在Excel檔案中,當這個Excel有一個副本時,相當於程式碼衍生了一個分支,所以程式碼維護是非常累的。如果需求比較複雜、程式碼量較大時,別猶豫,果斷拒絕vba。
vba的推薦使用人群及適用需求
2.工具是一次性或者不需要經常增減需求,推薦使用vba快速開發。
其實我不推薦大家去學習Python,因為如果只是為了日常處理Excel,vba足矣。學習難度真的不大,遇到問題百度一下就能解決。但學習vba我認為必須要以需求推動學習。也就是你要帶著目的來學習,跟著所謂的教程盲目地從第一章學到最後一章,到最後也許你都不知道自己學了什麼。
最好的方法是:
1.先搞清要實現什麼需求。
2.分析這些需求要使用什麼知識(例如:單元格格式修改/邊框修改/資料計算...)
3.搜尋相應的內容,並學習。
最後補充一句:vba也是程式設計,程式設計這東西跟以前學習數學一樣,有的同學會容易理解一學就會,有的同學可能剛開始的時候懵逼但聽老師講還有自己做題慢慢就學會了,但有的同學也許無論怎麼學都是一臉懵逼。無論你學的是vb、c、c#、c++、java還是python,學習的時候都一樣要學程式設計的基礎知識,假如對程式設計一臉懵逼,無論是vba還是python你都一樣是一臉懵逼。
vba能解決Excel使用者90%以上的需求。其他語言能處理的Excel工作,vba100%能處理,其他語言不能處理的,vba多數能處理。其他語言處理Excel,其實是使用Excel的COM介面開發或者是第三方的Excel庫開發。前者的本質就是vba,只不過換種語言,而後者則有不同的選擇,但這些庫也會有各種的問題存在,相容問題、bug、功能不全、使用不方便等。
vba的優勢:
1.不需要額外配置程式設計環境,正常情況下裝了Excel都會有。
2.有宏錄製功能。宏錄製的功能對於初學者來說是一個非常有用的,能瞭解到陌生API的使用方式。
3.能夠呼叫Windows的API、其他語言編譯的dll。除了不能編譯成獨立的EXE,vb6能做的,vba基本都能做。
4.網上有大量充足的例子,學習起來相對容易。
5.除錯相對簡單。
vba的劣勢:
1.版本老舊、操作反人類的IDE。vba的編輯器真的非常難受。
2.寬鬆的語法。我剛接觸vba的時候,我是認為寬鬆的語法是非常舒服的。但其實對於程式設計的學習是不利的,特別在適應vb6語法以後再去學習c系列語言時,過渡時會有點難受。
3.效能問題。vba的處理效率是很低的,進行大量資料處理時間會非常非常長。
4.維護問題。程式碼是儲存在Excel檔案中,當這個Excel有一個副本時,相當於程式碼衍生了一個分支,所以程式碼維護是非常累的。如果需求比較複雜、程式碼量較大時,別猶豫,果斷拒絕vba。
vba的推薦使用人群及適用需求
2.工具是一次性或者不需要經常增減需求,推薦使用vba快速開發。
其實我不推薦大家去學習Python,因為如果只是為了日常處理Excel,vba足矣。學習難度真的不大,遇到問題百度一下就能解決。但學習vba我認為必須要以需求推動學習。也就是你要帶著目的來學習,跟著所謂的教程盲目地從第一章學到最後一章,到最後也許你都不知道自己學了什麼。
最好的方法是:
1.先搞清要實現什麼需求。
2.分析這些需求要使用什麼知識(例如:單元格格式修改/邊框修改/資料計算...)
3.搜尋相應的內容,並學習。
最後補充一句:vba也是程式設計,程式設計這東西跟以前學習數學一樣,有的同學會容易理解一學就會,有的同學可能剛開始的時候懵逼但聽老師講還有自己做題慢慢就學會了,但有的同學也許無論怎麼學都是一臉懵逼。無論你學的是vb、c、c#、c++、java還是python,學習的時候都一樣要學程式設計的基礎知識,假如對程式設計一臉懵逼,無論是vba還是python你都一樣是一臉懵逼。