首先,我對這個問題持否定意見。

我十多年前曾經用VBA+Access編寫過一個100多人使用的生產管理系統,帶很多UI界面。可能有些人感覺這樣水平算比較高了吧,但我自己確實沒這種感覺。

一般講高手是一個相對的概念,是不是高手應該取決於對比對象。但我覺得使用會不會VBA來判斷Excel水平,這對比本身就不是公平的。類似於兩個人打遊戲,其中一個會用外掛,我們顯然不能用會不會外掛來評判他打遊戲水平高。

對於普通程序員,學習VBA難度很小,極短的時間就可以上手,但他很可能Excel很多函數都還用不好。事實上,一個人會了VBA,很可能遇到問題首先去想VBA怎麼實現,反而降低了探索Excel自身功能的動力。對於不會VBA的使用者來講,更有動力去挖掘Excel自身的各種功能。

我的意見僅針對這個問題本身,並非勸大家不要學習VBA。Excel功能無論多強大,但仍有靠自身無法實現的功能。熟練掌握Excel後,再有VBA作輔助,生產力會更上一個臺階。

以上都是個人意見,如果對我回答有興趣或異議,歡迎評論指正。


剛開始接觸vba是因為excel內置的函數以及各種東西已經解決不了我的需求。所以拋開vba必要與否,我認為當excel函數已經無法滿足你的需求,一定需要錄製宏或者編輯vba的時候,這個時候vba就是必學的。除非你可以告訴老闆,這個東西我不幹了,你想咋地?

比如當我們碰到如下的需求時,真的無法再手動了。

需求:某電商平臺招募了三方的代銷公司,約有320個公司,每個月根據銷售情況與供應商結算貨款。在只能使用excel沒有開發資源的情況下,我們要做到,求和匯總供應商當月每款產品的銷售額,貨款,並附上原表數據。且有固定的格式。每個供應商一個表。

在沒有erp的情況下,單獨複製粘貼新建表300餘次我想可能就離瘋了不久了。

但是用vba,開始跑程序,一杯咖啡的時間都不用,數據就全做好了。

以下是我用vba做的一個小工具,開發給我發了原始訂單數據之後,放入制定的文件夾,點擊導出或批量導出,就可以很方便的和他人對接了。

ps:這邊沒有給出時間的選項,因為默認本月統計上月訂單。


我覺得VBA多是解決一些重複性和複雜性工作的問題,如果處理的數據量不多而且處理沒有特別要求的話,真沒必要寫代碼,寫個代碼花的時間反而比較多,當今羅剛君老師開發的e靈插件,已經可以解決不少國內用戶的問題,再者高版本的office本身已經很強大了,在一定程度上會減少VBA使用頻率,這是對於大部分用戶來說,當然考慮到各個人在實際工作中總會遇到這樣那樣的問題,能寫VBA當然更好。考慮到時間成本,使用頻率等的原因,如果遇到麻煩問題不多的話,也可以付費讓人代寫的。


對於批量計算,批量分析,如果不會vba,你至少是個瘸子。用過vba的人為什麼總想用它,就是因為嘗到了甜頭。對於科學計算,在excel已經很強大的基礎上再加上vba,真是如虎添翼,我感覺可以完全取代以前的fortran語言,甚至是vb。實用、並能用它解決具體問題,纔是王道!


不一定,如果會power query也能達到VBA的效果,當然除了窗體的用法,但是Power query結合Power pivot要比VBA強大,可以做個人BI. 它倆都是集成在Excel 2016版本里的。


我們常聽說Excel高手,很少聽到VBA高手。

VBA的確非常強大,但它是依附Excel而存在的。

其實Excel本身內置的功能已非常強大了,如果能用Excel解決的問題,就沒有必要搬到VBA裏去做,將簡單的問題複雜化了。

真正的高手,是會盡量發揮Excel自身的威力的。


excel函數也能解決大部份的問題,只是使用比較複雜,且又沒有教程講解億情況下很難熟悉,就像我對v比較函數vlookup還不會用,使用時就是不能達到我的目的。只能用回vba。

還有就是從多個excel獲取數據時應該是vba比透視表會更好用。


我只知道學了vba的,也不一定是高手,但是你既然是高手,vba都不懂的話,你說你是高手,能讓人信服麼?是必要條件,而不是充分條件。


並不是這樣的,看你是用的場景,如果你的需求更多的可以通過公式,甚至是一些操作的話,就可以達到目的的話,那麼VBA並不是首選。

VBA主要用於excel現有的操作或者是公式無法達到,或者是公式太複雜的情況下使用的。


推薦閱讀:
相關文章