[討論] VBA 適合新手學嗎?

作者: prince101 (秋意)   2022-07-17 09:14:39
有學過JS跟PY
這兩個月開始學習VBA
剛開始覺得滿難的 因為語法比上面兩個複雜
還有變數型態上也是 種類繁多
像是數字就分為短整數 長整數 短浮點數 長浮點數
還有物件 物件又分為 工作表物件 圖表物件 樞紐物件 .....etc
但物件是種換湯不換藥的東西 概念都差不多
還有要克服的點是 excel 讀跟寫儲存格很慢
用for 迴圈跌代100個可能沒感覺 10000個就感覺超慢
解決方法就是要一次性寫入 或是先儲存在陣列
然後一次性寫入儲存格
vba 的優點是 常用的方法跟屬性就是那幾個resize intersect
find autofilter union etc 而且在寫的時候能自動校正
事件處理也是 直接有一個列表讓你選
個人覺得vba算是入門較難 但上手後會很容易的一門語言
大家贊同嗎? 還是我有誤區?
作者: FXW11314 (soukai)   2022-07-17 09:39:00
一開始就學C/Java的會覺得VBA簡單吧…大部分語言都有分型別啊所以我一直覺得想吃這行飯的一開始就學python不太好,很多觀念會沒摸到我講大部分語言都有分型別也怪怪的,python 也有分啊
作者: hobnob (hobnob)   2022-07-17 09:49:00
我覺得你說的難都不算難,只是你不熟而已
作者: a12838910 (Ziv.C)   2022-07-17 10:02:00
不如學.net?
作者: wulouise (在線上!=在電腦前)   2022-07-17 10:44:00
為什麼要vba..python應該也可以讀檔處理吧
作者: vi000246 (Vi)   2022-07-17 10:47:00
我不知道耶 程式語言入門都差不多吧 看幾個範例抄一下很快就能做出能動的東西了
作者: lazarus1121 (...)   2022-07-17 10:48:00
可以吧,我非本科啥都不懂就直接看書學了不過就真的只會用for來處理資料讀寫儲存格有不連動畫面的方法能用,開起來會快很多
作者: enthos (影斯作業系統)   2022-07-17 11:28:00
不如學PowerShell,都可以用來寫Remote Desktop.https://github.com/DarkCoderSc/PowerRemoteDesktop
作者: railrail (白線流)   2022-07-17 12:11:00
不用學VBA呀,直接學C#就有官方的library可以操控excel了
作者: attack0214 (蘿莉控)   2022-07-17 12:14:00
不要VBA
作者: OriginStar   2022-07-17 13:10:00
因為原PO沒學過Visual Basic,會覺得VBA格格不入除非原PO想用Excel做表單功能(進階一點連結資料庫)Visual Basic是舊時代產物了,接觸的應該像我依樣都有40歲了吧
作者: kurtsgm   2022-07-17 13:29:00
不建議+1 如果是20~30年前 VBA作為一個新手入門的語言還算合適(相較於比較硬的C/C++) 但現在一堆有商用價值的語言都還比VBA淺顯易學了 我不太確定現在學VBA有啥意義
作者: imreader (imreader)   2022-07-17 13:48:00
https://segmentfault.com/a/1190000038753482再見VBA!神器工具統一Excel 和Python
作者: waterwalk (心碎無聲)   2022-07-17 18:12:00
碰過VB6 可4我現在奔三而已
作者: ILYY (毅力)   2022-07-17 18:13:00
不建議 直接學別的
作者: sailoruranu   2022-07-17 19:28:00
vba不太適合處理大量資料與多工處理,比較適合單機處理小量資料或是當作另一種ui 介面展現資料
作者: chocopie (好吃的巧克力派 :))   2022-07-17 20:35:00
如果是2 30年前還可以,但現在有python,舉凡大量讀寫操作絕對比 vb 重刻輪子快上許多,更別說接資料用 pandas numpy。你還在一個個宣告型別的時候別人用python可能已經寫完了不過若你在的單位有那種三四十歲同事不會python 而要求你用 vb的話,那就稍微用一下,反正裝忙也是職場常態之一。
作者: airtsubasa (偽學姊)   2022-07-17 21:40:00
如果你公司安裝的軟體不是你能控制並有控管,適當的輔助你日常有何不可
作者: sazabijiang (筆落驚風雨詩成泣鬼神)   2022-07-17 22:30:00
VBA原則上要依附Excel,除非你是要寫WSH程式語言本身很簡單,有學過程式設計的就很容易上手他對物件型態的判定也算鬆散,甚至變數不用宣告也可以使用,不過還是建議開啟Option Explicit如果要用迴圈寫資料到儲存格,有兩種可以加速的方式比較簡單的是Application.ScreenUpdating = False另一種如果你要貼的資料是一個recordset,那就不要用雙重迴圈逐一貼滿所有的儲存格,直接用Range().CopyFromRecordset()如果要貼的資料已經儲存在一個陣列裡,用Sheets().Cells().Resize().Value = 陣列變數這樣不管幾萬格的資料,都可以在一秒內更新完畢VBA好處是與office其他軟體包括word, outlook access高度整合,你可以在VBA裡存取outlook郵件、透過ODBC driver把.csv、excel等檔案當成SQL資料庫存取也有timer可以做自動化排程,可以送出鍵盤訊號做RPA自動化,還可以發出http request做網頁爬蟲真要講他的缺點就是,他是微軟的解決方案....
作者: viper9709 (阿達)   2022-07-17 23:31:00
推一樓
作者: newking761 (J三小)   2022-07-18 08:17:00
學這個要幹嘛
作者: TurtleShell (還我龜殼)   2022-07-18 11:48:00
目前22y 高中計概課上過vb (舉手
作者: winnie830925 ( )   2022-07-18 12:06:00
VBA不用刻意學吧 除非你人生的天花版就是excel
作者: evilcherry (邪離子)   2022-07-18 13:54:00
如果你解決的問題是Excel那就一定要學VBA了
作者: qss05 (minami)   2022-07-18 14:37:00
我覺得VBA不會很難啊…基本的一個禮拜就會了吧,而且如果你是很常要出excel報表的部門,vba處理會比用其他的呼叫方便,他就給你一個excel叫你處理上面的資料,你不用vba要用什麼
作者: realbout (薩摩訶)   2022-07-18 21:53:00
有些公司喜歡用VBA出報表 要不然這語言我覺得是寫爽用.....
作者: brucetu (sec)   2022-07-18 23:15:00
不要浪費時間學薪水不高的技能
作者: chunfo (龘龘龘)   2022-07-18 23:41:00
新手當然是計組資結打底 從c入門 有時間的話
作者: sazabijiang (筆落驚風雨詩成泣鬼神)   2022-07-19 00:15:00
如果在銀行工作,什麼軟體都不能裝,還真只能用VBA跟java script寫程式
作者: kimi0325 (只想做你的麥高芬)   2022-07-19 12:02:00
目前18 一年級上過vb
作者: asleisureto (ASLE)   2022-07-19 15:28:00
建議學C#,想要高薪請學Java甚至C++
作者: paulshain04 (paulshain04)   2022-07-19 21:15:00
寫 C# 啦不要寫VB
作者: tin8420 (恆恆)   2022-07-19 22:41:00
學了三個月 入門不難 但是專精有一定的難度 別小看VBA
作者: firemonny   2022-07-19 23:59:00
寫C# 真心不騙
作者: Tix (Sean Chen)   2022-07-20 05:54:00
設型別算啥,以前寫C還要設記憶體咧
作者: qss05 (minami)   2022-07-20 10:14:00
我覺得VBA難是難在有些EXCEL那些專用的功能,公司有一個專寫VBA的看起來是真的很精,可是他把一堆東西埋在EXCEL裡面,然後那些都不命名、不註解,結果接手他的都看不懂他埋在哪裡…搞得比單純用程式碼硬幹還難維護
作者: chocopie (好吃的巧克力派 :))   2022-07-20 21:48:00
這樣他才難以被取代啊
作者: OrzOGC (洞八達人.拖哨天王)   2022-07-20 22:56:00
難以被取代又非用不可的話才有籌碼喊價啊...XD

Links booklink

Contact Us: admin [ a t ] ucptt.com