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

看板Soft_Job作者 (秋意)時間1年前 (2022/07/17 09:14), 1年前編輯推噓24(25160)
留言86則, 34人參與, 1年前最新討論串1/1
有學過JS跟PY 這兩個月開始學習VBA 剛開始覺得滿難的 因為語法比上面兩個複雜 還有變數型態上也是 種類繁多 像是數字就分為短整數 長整數 短浮點數 長浮點數 還有物件 物件又分為 工作表物件 圖表物件 樞紐物件 .....etc 但物件是種換湯不換藥的東西 概念都差不多 還有要克服的點是 excel 讀跟寫儲存格很慢 用for 迴圈跌代100個可能沒感覺 10000個就感覺超慢 解決方法就是要一次性寫入 或是先儲存在陣列 然後一次性寫入儲存格 vba 的優點是 常用的方法跟屬性就是那幾個resize intersect find autofilter union etc 而且在寫的時候能自動校正 事件處理也是 直接有一個列表讓你選 個人覺得vba算是入門較難 但上手後會很容易的一門語言 大家贊同嗎? 還是我有誤區? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.106.134 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1658020483.A.37A.html

07/17 09:39, 1年前 , 1F
一開始就學C/Java的會覺得VBA簡單吧…大部分語言都有分
07/17 09:39, 1F

07/17 09:39, 1年前 , 2F
型別啊
07/17 09:39, 2F

07/17 09:39, 1年前 , 3F
所以我一直覺得想吃這行飯的一開始就學python不太好,
07/17 09:39, 3F

07/17 09:39, 1年前 , 4F
很多觀念會沒摸到
07/17 09:39, 4F

07/17 09:42, 1年前 , 5F
我講大部分語言都有分型別也怪怪的,python 也有分啊
07/17 09:42, 5F

07/17 09:49, 1年前 , 6F
我覺得你說的難都不算難,只是你不熟而已
07/17 09:49, 6F
※ 編輯: prince101 (1.163.106.134 臺灣), 07/17/2022 09:51:41

07/17 10:02, 1年前 , 7F
不如學.net?
07/17 10:02, 7F

07/17 10:44, 1年前 , 8F
為什麼要vba..python應該也可以讀檔處理吧
07/17 10:44, 8F

07/17 10:47, 1年前 , 9F
我不知道耶 程式語言入門都差不多吧 看幾個範例抄一下
07/17 10:47, 9F

07/17 10:47, 1年前 , 10F
很快就能做出能動的東西了
07/17 10:47, 10F

07/17 10:48, 1年前 , 11F
可以吧,我非本科啥都不懂就直接看書學了
07/17 10:48, 11F

07/17 10:48, 1年前 , 12F
不過就真的只會用for來處理資料
07/17 10:48, 12F

07/17 10:50, 1年前 , 13F
讀寫儲存格有不連動畫面的方法能用,開起來會快很多
07/17 10:50, 13F

07/17 11:28, 1年前 , 14F
不如學PowerShell,都可以用來寫Remote Desktop.
07/17 11:28, 14F

07/17 11:28, 1年前 , 15F

07/17 12:11, 1年前 , 16F
不用學VBA呀,直接學C#就有官方的library可以操控excel
07/17 12:11, 16F

07/17 12:11, 1年前 , 17F
07/17 12:11, 17F

07/17 12:14, 1年前 , 18F
不要VBA
07/17 12:14, 18F

07/17 13:10, 1年前 , 19F
因為原PO沒學過Visual Basic,會覺得VBA格格不入
07/17 13:10, 19F

07/17 13:12, 1年前 , 20F
除非原PO想用Excel做表單功能(進階一點連結資料庫)
07/17 13:12, 20F

07/17 13:15, 1年前 , 21F
Visual Basic是舊時代產物了,接觸的應該像我依樣都
07/17 13:15, 21F

07/17 13:15, 1年前 , 22F
有40歲了吧
07/17 13:15, 22F

07/17 13:29, 1年前 , 23F
不建議+1 如果是20~30年前 VBA作為一個新手入門的語言還
07/17 13:29, 23F

07/17 13:29, 1年前 , 24F
算合適(相較於比較硬的C/C++) 但現在一堆有商用價值的語
07/17 13:29, 24F

07/17 13:30, 1年前 , 25F
言都還比VBA淺顯易學了 我不太確定現在學VBA有啥意義
07/17 13:30, 25F

07/17 13:48, 1年前 , 26F

07/17 13:48, 1年前 , 27F
再見VBA!神器工具統一Excel 和Python
07/17 13:48, 27F

07/17 13:49, 1年前 , 28F
將Jupyter Notebook嵌入到Excel中
07/17 13:49, 28F

07/17 18:12, 1年前 , 29F
碰過VB6 可4我現在奔三而已
07/17 18:12, 29F

07/17 18:13, 1年前 , 30F
不建議 直接學別的
07/17 18:13, 30F

07/17 19:28, 1年前 , 31F
vba不太適合處理大量資料與多工處理,比較適合單機處
07/17 19:28, 31F

07/17 19:28, 1年前 , 32F
理小量資料或是當作另一種ui 介面展現資料
07/17 19:28, 32F

07/17 20:35, 1年前 , 33F
如果是2 30年前還可以,但現在有python,
07/17 20:35, 33F

07/17 20:35, 1年前 , 34F
舉凡大量讀寫操作絕對比 vb 重刻輪子快上許多,
07/17 20:35, 34F

07/17 20:35, 1年前 , 35F
更別說接資料用 pandas numpy。
07/17 20:35, 35F

07/17 20:35, 1年前 , 36F
你還在一個個宣告型別的時候別人用python可能已經寫完了
07/17 20:35, 36F

07/17 20:37, 1年前 , 37F
不過若你在的單位有那種三四十歲同事不會python 而要求
07/17 20:37, 37F

07/17 20:37, 1年前 , 38F
你用 vb的話,那就稍微用一下,反正裝忙也是職場常態之
07/17 20:37, 38F

07/17 20:37, 1年前 , 39F
一。
07/17 20:37, 39F

07/17 21:40, 1年前 , 40F
如果你公司安裝的軟體不是你能控制並有控管,適當的輔
07/17 21:40, 40F

07/17 21:40, 1年前 , 41F
助你日常有何不可
07/17 21:40, 41F

07/17 22:30, 1年前 , 42F
VBA原則上要依附Excel,除非你是要寫WSH
07/17 22:30, 42F

07/17 22:30, 1年前 , 43F
程式語言本身很簡單,有學過程式設計的就很容易上手
07/17 22:30, 43F

07/17 22:31, 1年前 , 44F
他對物件型態的判定也算鬆散,甚至變數不用宣告也
07/17 22:31, 44F

07/17 22:32, 1年前 , 45F
可以使用,不過還是建議開啟Option Explicit
07/17 22:32, 45F

07/17 22:33, 1年前 , 46F
如果要用迴圈寫資料到儲存格,有兩種可以加速的方式
07/17 22:33, 46F

07/17 22:34, 1年前 , 47F
比較簡單的是Application.ScreenUpdating = False
07/17 22:34, 47F

07/17 22:36, 1年前 , 48F
另一種如果你要貼的資料是一個recordset,那就不
07/17 22:36, 48F

07/17 22:36, 1年前 , 49F
要用雙重迴圈逐一貼滿所有的儲存格,直接用
07/17 22:36, 49F

07/17 22:37, 1年前 , 50F
Range().CopyFromRecordset()
07/17 22:37, 50F

07/17 22:38, 1年前 , 51F
如果要貼的資料已經儲存在一個陣列裡,用
07/17 22:38, 51F

07/17 22:40, 1年前 , 52F
Sheets().Cells().Resize().Value = 陣列變數
07/17 22:40, 52F

07/17 22:40, 1年前 , 53F
這樣不管幾萬格的資料,都可以在一秒內更新完畢
07/17 22:40, 53F

07/17 22:41, 1年前 , 54F
VBA好處是與office其他軟體包括word, outlook access
07/17 22:41, 54F

07/17 22:41, 1年前 , 55F
高度整合,你可以在VBA裡存取outlook郵件、透過
07/17 22:41, 55F

07/17 22:42, 1年前 , 56F
ODBC driver把.csv、excel等檔案當成SQL資料庫存取
07/17 22:42, 56F

07/17 22:42, 1年前 , 57F
也有timer可以做自動化排程,可以送出鍵盤訊號做
07/17 22:42, 57F

07/17 22:44, 1年前 , 58F
RPA自動化,還可以發出http request做網頁爬蟲
07/17 22:44, 58F

07/17 22:45, 1年前 , 59F
真要講他的缺點就是,他是微軟的解決方案....
07/17 22:45, 59F

07/17 23:31, 1年前 , 60F
推一樓
07/17 23:31, 60F

07/18 08:17, 1年前 , 61F
學這個要幹嘛
07/18 08:17, 61F

07/18 11:48, 1年前 , 62F
目前22y 高中計概課上過vb (舉手
07/18 11:48, 62F

07/18 12:06, 1年前 , 63F
VBA不用刻意學吧 除非你人生的天花版就是excel
07/18 12:06, 63F

07/18 13:54, 1年前 , 64F
如果你解決的問題是Excel那就一定要學VBA了
07/18 13:54, 64F

07/18 14:37, 1年前 , 65F
我覺得VBA不會很難啊…基本的一個禮拜就會了吧,而且如果
07/18 14:37, 65F

07/18 14:37, 1年前 , 66F
你是很常要出excel報表的部門,vba處理會比用其他的呼叫方
07/18 14:37, 66F

07/18 14:37, 1年前 , 67F
便,他就給你一個excel叫你處理上面的資料,你不用vba要用
07/18 14:37, 67F

07/18 14:37, 1年前 , 68F
什麼
07/18 14:37, 68F

07/18 21:53, 1年前 , 69F
有些公司喜歡用VBA出報表 要不然這語言我覺得是寫爽用..
07/18 21:53, 69F

07/18 21:53, 1年前 , 70F
...
07/18 21:53, 70F

07/18 23:15, 1年前 , 71F
不要浪費時間學薪水不高的技能
07/18 23:15, 71F

07/18 23:41, 1年前 , 72F
新手當然是計組資結打底 從c入門 有時間的話
07/18 23:41, 72F

07/19 00:15, 1年前 , 73F
如果在銀行工作,什麼軟體都不能裝,還真只能用
07/19 00:15, 73F

07/19 00:15, 1年前 , 74F
VBA跟java script寫程式
07/19 00:15, 74F

07/19 12:02, 1年前 , 75F
目前18 一年級上過vb
07/19 12:02, 75F

07/19 15:28, 1年前 , 76F
建議學C#,想要高薪請學Java甚至C++
07/19 15:28, 76F

07/19 21:15, 1年前 , 77F
寫 C# 啦不要寫VB
07/19 21:15, 77F

07/19 22:41, 1年前 , 78F
學了三個月 入門不難 但是專精有一定的難度 別小看VBA
07/19 22:41, 78F

07/19 23:59, 1年前 , 79F
寫C# 真心不騙
07/19 23:59, 79F

07/20 05:54, 1年前 , 80F
設型別算啥,以前寫C還要設記憶體咧
07/20 05:54, 80F

07/20 10:14, 1年前 , 81F
我覺得VBA難是難在有些EXCEL那些專用的功能,公司有一個專
07/20 10:14, 81F

07/20 10:14, 1年前 , 82F
寫VBA的看起來是真的很精,可是他把一堆東西埋在EXCEL裡面
07/20 10:14, 82F

07/20 10:14, 1年前 , 83F
,然後那些都不命名、不註解,結果接手他的都看不懂他埋在
07/20 10:14, 83F

07/20 10:14, 1年前 , 84F
哪裡…搞得比單純用程式碼硬幹還難維護
07/20 10:14, 84F

07/20 21:48, 1年前 , 85F
這樣他才難以被取代啊
07/20 21:48, 85F

07/20 22:56, 1年前 , 86F
難以被取代又非用不可的話才有籌碼喊價啊...XD
07/20 22:56, 86F
文章代碼(AID): #1YqsA3Dw (Soft_Job)