東風且無事
這一個還是要看具體的需求吧,其實VBA和python都是解釋型的編程語言,可以說學習的難度都不是很大。
首先,如果只是簡單的一些編程,且還是更多的希望基於excel做一些數據處理及分析,VBA不愧是一個很不錯的選擇,況且個人認為VBA有一個非常好用的功能——錄製宏,很多工作表的操作都可以通過錄制宏實現,省了很多查閱手冊的時間。如果是編寫一些不太複雜的業務管理系統的話,excel vba是完全可以搞定的,本人也發佈了通過vba實現進銷存管理系統的系列課,感興趣的可以查看。
其次,再說說python語言。個人認為python語言比較大的優勢是各種庫非常豐富,通過調用各種庫,可以用很簡短的代碼實現複雜的功能。同時,python裡面的numpy、pandas等科學計算庫,為我們做數據分析也提供了強大的支持,同時Matplotlib庫提供了強大的繪圖功能,能輕鬆繪製出各類美觀的圖。所以說,如果要進行科學計算分析的話,python也是一個不錯的選擇喲!
Excel函數公式技巧
首先作為一個Python和VBA都學了的分析師(非財務),我先分析一下題主的問題
- 題主日常工作常用的軟件是Excel,而且熟悉程度足以勝任現有工作。
- 題主並不打算兩個都學一下,至少目前沒有這個打算。
- 題主對於這兩者的學習慾望都不太強,“想深入瞭解,後期預估會用到”
- 題主感覺python代碼好理解,說明對其有一定了解。
針對以上分析,我的推薦是VBA。
- 首先,題主聽說VBA與Excel的契合度比較好,這一點是不容置疑的。
- VBA的學習曲線平緩,可以在Excel上直接敲代碼。不需要糾結於什麼IDE好,更不用糾結學哪個版本。
- VBA的目的性強,VBA最大的作用就是幫助我們更快更好的操作Excel,沒有太多花哨的東西,不會讓我們迷失在代碼之中。可以讓我們的目光一直聚焦在問題上。
- VBA的反饋更快,更精準。你只需要很簡單的三兩行代碼,就能獲得很大的滿足感。這種滿足感會給你帶來很多正能量的影響,比如自信和不斷學習的動力。
為什麼不推薦Python
- 題主覺得Python的代碼好理解,這並沒有錯。但是這只是一種錯覺,Python入門容易的前提是與C,Java,PHP等比較。它終究還是比VBA要難。
- Python操作Excel的第三方庫很多,xlrd, xlwt, openpyxl, pandas......;多本來時優點,但是對於初學者來說,反而成了弱點。 因為會不知道學那個好,就像你不知道該學Python3還是Python2,是該用jupiter notebook,還是該用jupiter notebook。
- Python的反饋慢,枯燥的學習可能會使人喪失鬥志。都說學習Python應該從爬蟲開始,就是因為爬蟲的學習反饋最快,可是也因此很多人學著學著都忘記了學習的初衷。
無論是python還是VBA其實都只是工具,是我們用來解決問題的工具。槍比刀的威力大,刀能修指甲,槍卻不行。無論什麼工具,能解決我們的問題,能滿足我們的工作需求都是好工具。
從題主的問題中,我個人認為無論時Python還是VBA,都足以滿足需求。只少時近期的需求,這時候見效最快,學習成本低的才是好的選擇。
綜上所述,我認為i題主應該優先選擇學VBA。其次,我想說的是這兩者其實並不衝突,完全可都學會。當你學會一個,再回過頭學另一個,你會發現其實很簡單。
所有的計算機語言,都重在邏輯。當你學會一門語言,再去學其他語言,你會發現其實很容易。這就是人們常說的,最難的語言是你學的第一門語言,而不是Python或者PHP。
羽毛的重量
如果你沒有語言基礎,並且想學習一門語言來處理Excel表格,那麼我的建議是不要學VBA,也不要學Python,C#和
VB.net
任學一門就可以了,然後再學習點SQL的基礎,基本上數據處理你就能搞定了,數據處理歸根結底還是需要數據庫支持,而不規範的表格數據註定不會有很多。不建議學VBA理由
可能很多人會反對這個說法,我只能說適合自己的就是好的吧,VBA作為一種腳本語言至少是20年前的東西了,20多年來沒有什麼更新,不論是在語法上還是在理念上都和現代的
VB.net
、C#差異很大,基本上只適用於在office平臺上解決些問題,對操作office有更好的支持,僅此而異;如果你學習的是一門現代的語言,不論是C#還是VB.net
,通過第三方庫操作office只是它的一種用法而已,能幹的事情會更多,處理起來速度更快,效率更高,有人會拿VBA支持事件來說事,但是要知道但凡需要界面事件等來操作的,編製成軟件後錄入才是更好的方法,而不是在一個表格中折騰。軟件連接數據庫非常容易,不論是C/S還是B/S模式,給用戶的只是客戶端界面,數據永遠在公司服務器的數據庫中,安全性更好,VBA想實現很難吧。
如果你已經會
Vb.net或c#
,那麼也只是可以看得懂部分的VBA代碼,能寫點簡單的,如果只會VBA,那麼面對VB.net和 c# 編程,基本上需要重頭進行學習,原來的那些VBA知識基本上沒用。
不建議學Python的理由
Python這兩年很熱很火,但是基本上不適合於普通用戶使用,特別是在windows平臺上,先說開發環境有很多不說,還有不同的版本支持,需要調用的第三方庫,中間的各種不兼容等,如果對linux沒一點了解,還是不要碰它,Python實現圖像界面有一定的難度,不如C#友好,寫好代碼後製作成可執行軟件用戶交互差。
python的強大之處在於它的第三方庫非常非常的多,通常只需要很少的代碼量就能解決問題,但它對普通用戶不友好。
c#和
VB.net
這個也是微軟的親兒子,VS的IDE說第二沒人敢說第一,上手容易,界面也相當友好,通過簡單拖拽就能做出一個圖形界面,再引用第三方庫
Spire.Xls
、NPOI等處理起來Excel更是方便快捷,你完全可以把Excel中的數據讀入到DataSet中,然後在DataGrid中顯示出來進行處理,或者在後端處理,也可以直接讀單元格來處理,最後處理好的結果你是想保存到數據庫中還是想存回原有的表格中,或者是根據某些條件批量生成大量的Excel文件,都是相當容易的事情。最終想學哪個決定在自己,但是在學習之前找個VBA的手冊和C#的手冊都瀏覽一下,就明白自己該學習哪個了。
辦公小技巧
作為兩種語言都會一些的財務人員,首先還是推薦先VBA,再考慮Python的學習
理由如下:
VBA作為office的原始自帶語言,相對於其他語言操作Excel更加方便快捷
VBA是Visual Basic For Application 的簡稱,語法體驗和VB一致,都是一個大家族,作為一門腳本語言,學習成本相對於其他語言較低。
Python作為最近幾年的熱門語言,其語法簡潔明瞭,輪子也多,財務領域,可以用於數據的採集,ETL和後續分析。就數據方面Python操作起來方便很多,但是對於一些格式圖表細節則不如VBA來的方便。
VBA學習成本相對Python低一些
對於新手,首先要學習的就是錄製宏!
在Excel中錄製宏,把我們的操作錄製下來,反覆使用,就好像錄製視頻一樣,可以反覆觀看,其中80%的功能,我們可以通過錄制宏來實現,剩下要學習的知識並不是很多
需要學習的大概有
1、工作薄對象,工作表對象、單元格對象、圖表類對象(相對前兩者使用少一些)等
2、循環和判斷語句(FOR、DO、IF常用)等
3、其他重要:數組、FSO、正則、字典等
財務人員使用Excel頻率高,跨文件操作必學VBA
只會函數、技巧、圖表對於複雜一些的財務需求是遠遠不夠的,
集團中,財務面對是經常是大量的文件彙總處理、數據抽取、分析、拆分
這種跨文件,大量的處理,是函數所無法完成的,如果會VBA則得心應手
未來可以推薦PBI系列
隨著PBI和Power系列的出現,給Excel插上了翅膀,
Power Query :對數據的ETL簡單高效,降低了學習成本,對於新手比較友好,
Power Pivot :號稱超級透視表,透視表大家都知道非常的好用,對於簡單的數據分析,非常方便,那麼這個超級透視表,可見一斑
Power Map:數據可視化展示,比自帶的常用圖表展示更加方便,在Power BI中有了更多的圖表插件可以學習
簡單說兩句,大家有興趣可以留言,進一步交流溝通!
Excel辦公實戰
必須Vba,office自帶,有點basic基礎(貌似大學都要學,高中信息結業考試就是考basic)很容易上手,網上資源教程也多,office自帶的幫助文檔也很全面。vba很強大,連接sqlserver毫無壓力;可調用系統API;使用ActiveX控件等等。VB6的功能它基本都能實現。當然和vb.net比肯定有差距了,比如原生多線程,繼承等等。
執行效率只能說一般,前幾天遇多一個20多萬行的表,50多M(也是醉了……),啟用了宏,打開就要半個多小時,當然也可能是他沒優化好,還在研究中,擬採用Sqlserver。
壹壺老酒慰風塵
pb簡單易學,能方便調用vba,操控數據庫。
周海147109365
學EXCEL函數就行了,會計的函數相對簡單,沒必要用VBA,有點牛刀殺雞的意思。
SixHero
對於這個問題,首先要看一下題主處理數據的量是多少數量級別的。然後主要輸出的數據格式是什麼樣的?
如果只是10萬以內的數據量,其實直接vba就好了,出來的還是excel格式的表格,方便交流傳輸。而且做出來的表格傳遞給同樣擁有excel的人,就能馬上使用這些開發好的功能了。不需要像python那樣還要考慮封裝接口什麼的。
可是如果數據使用量太高,而輸出大多也只是整理好的精簡數據的話,python倒是個不錯的選擇。python入門也不算太難,但是麻煩就麻煩在後期的封裝和交流。
2種語言的對比上來說,python的功能要更為強大一些,而且上手也簡單許多。vba的話上手也不算困難,只是語法上來說沒python那麼貼近語義,很多功能\\模塊\\命令都已經多年沒更新過了,使用的時候感覺年代感滿滿的……
metoogo
VBA+SQL
URCBKEVIN110266326
先學vba吧,上手很快,先用起來再說,應該可以滿足你的工作需求。以後有興趣或需要處理複雜應用,再考慮C#或python等其他語言。