PTT評價

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

看板Soft_Job標題[討論] VBA 適合新手學嗎?作者
prince101
(秋意)
時間推噓24 推:25 噓:1 →:61

有學過JS跟PY


這兩個月開始學習VBA


剛開始覺得滿難的 因為語法比上面兩個複雜


還有變數型態上也是 種類繁多


像是數字就分為短整數 長整數 短浮點數 長浮點數


還有物件 物件又分為 工作表物件 圖表物件 樞紐物件 .....etc


但物件是種換湯不換藥的東西 概念都差不多


還有要克服的點是 excel 讀跟寫儲存格很慢


用for 迴圈跌代100個可能沒感覺 10000個就感覺超慢


解決方法就是要一次性寫入 或是先儲存在陣列


然後一次性寫入儲存格



vba 的優點是 常用的方法跟屬性就是那幾個resize intersect
find autofilter union etc 而且在寫的時候能自動校正

事件處理也是 直接有一個列表讓你選


個人覺得vba算是入門較難 但上手後會很容易的一門語言


大家贊同嗎? 還是我有誤區?

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.106.134 (臺灣)
PTT 網址

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

FXW1131407/17 09:39型別啊

FXW1131407/17 09:39所以我一直覺得想吃這行飯的一開始就學python不太好,

FXW1131407/17 09:39很多觀念會沒摸到

FXW1131407/17 09:42我講大部分語言都有分型別也怪怪的,python 也有分啊

hobnob07/17 09:49我覺得你說的難都不算難,只是你不熟而已

※ 編輯: prince101 (1.163.106.134 臺灣), 07/17/2022 09:51:41

a1283891007/17 10:02不如學.net?

wulouise07/17 10:44為什麼要vba..python應該也可以讀檔處理吧

vi00024607/17 10:47我不知道耶 程式語言入門都差不多吧 看幾個範例抄一下

vi00024607/17 10:47很快就能做出能動的東西了

lazarus112107/17 10:48可以吧,我非本科啥都不懂就直接看書學了

lazarus112107/17 10:48不過就真的只會用for來處理資料

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

enthos07/17 11:28不如學PowerShell,都可以用來寫Remote Desktop.

railrail07/17 12:11不用學VBA呀,直接學C#就有官方的library可以操控excel

railrail07/17 12:11

attack021407/17 12:14不要VBA

OriginStar07/17 13:10因為原PO沒學過Visual Basic,會覺得VBA格格不入

OriginStar07/17 13:12除非原PO想用Excel做表單功能(進階一點連結資料庫)

OriginStar07/17 13:15Visual Basic是舊時代產物了,接觸的應該像我依樣都

OriginStar07/17 13:15有40歲了吧

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

kurtsgm07/17 13:29算合適(相較於比較硬的C/C++) 但現在一堆有商用價值的語

kurtsgm07/17 13:30言都還比VBA淺顯易學了 我不太確定現在學VBA有啥意義

imreader07/17 13:48再見VBA!神器工具統一Excel 和Python

imreader07/17 13:49將Jupyter Notebook嵌入到Excel中

waterwalk07/17 18:12碰過VB6 可4我現在奔三而已

ILYY07/17 18:13不建議 直接學別的

sailoruranu07/17 19:28vba不太適合處理大量資料與多工處理,比較適合單機處

sailoruranu07/17 19:28理小量資料或是當作另一種ui 介面展現資料

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

chocopie07/17 20:35舉凡大量讀寫操作絕對比 vb 重刻輪子快上許多,

chocopie07/17 20:35更別說接資料用 pandas numpy。

chocopie07/17 20:35你還在一個個宣告型別的時候別人用python可能已經寫完了

chocopie07/17 20:37不過若你在的單位有那種三四十歲同事不會python 而要求

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

chocopie07/17 20:37一。

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

airtsubasa07/17 21:40助你日常有何不可

sazabijiang07/17 22:30VBA原則上要依附Excel,除非你是要寫WSH

sazabijiang07/17 22:30程式語言本身很簡單,有學過程式設計的就很容易上手

sazabijiang07/17 22:31他對物件型態的判定也算鬆散,甚至變數不用宣告也

sazabijiang07/17 22:32可以使用,不過還是建議開啟Option Explicit

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

sazabijiang07/17 22:34比較簡單的是Application.ScreenUpdating = False

sazabijiang07/17 22:36另一種如果你要貼的資料是一個recordset,那就不

sazabijiang07/17 22:36要用雙重迴圈逐一貼滿所有的儲存格,直接用

sazabijiang07/17 22:37Range().CopyFromRecordset()

sazabijiang07/17 22:38如果要貼的資料已經儲存在一個陣列裡,用

sazabijiang07/17 22:40Sheets().Cells().Resize().Value = 陣列變數

sazabijiang07/17 22:40這樣不管幾萬格的資料,都可以在一秒內更新完畢

sazabijiang07/17 22:41VBA好處是與office其他軟體包括word, outlook access

sazabijiang07/17 22:41高度整合,你可以在VBA裡存取outlook郵件、透過

sazabijiang07/17 22:42ODBC driver把.csv、excel等檔案當成SQL資料庫存取

sazabijiang07/17 22:42也有timer可以做自動化排程,可以送出鍵盤訊號做

sazabijiang07/17 22:44RPA自動化,還可以發出http request做網頁爬蟲

sazabijiang07/17 22:45真要講他的缺點就是,他是微軟的解決方案....

viper970907/17 23:31推一樓

newking76107/18 08:17學這個要幹嘛

TurtleShell07/18 11:48目前22y 高中計概課上過vb (舉手

winnie83092507/18 12:06VBA不用刻意學吧 除非你人生的天花版就是excel

evilcherry07/18 13:54如果你解決的問題是Excel那就一定要學VBA了

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

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

qss0507/18 14:37便,他就給你一個excel叫你處理上面的資料,你不用vba要用

qss0507/18 14:37什麼

realbout07/18 21:53有些公司喜歡用VBA出報表 要不然這語言我覺得是寫爽用..

realbout07/18 21:53...

brucetu07/18 23:15不要浪費時間學薪水不高的技能

chunfo07/18 23:41新手當然是計組資結打底 從c入門 有時間的話

sazabijiang07/19 00:15如果在銀行工作,什麼軟體都不能裝,還真只能用

sazabijiang07/19 00:15VBA跟java script寫程式

kimi032507/19 12:02目前18 一年級上過vb

asleisureto07/19 15:28建議學C#,想要高薪請學Java甚至C++

paulshain0407/19 21:15寫 C# 啦不要寫VB

tin842007/19 22:41學了三個月 入門不難 但是專精有一定的難度 別小看VBA

firemonny07/19 23:59寫C# 真心不騙

Tix07/20 05:54設型別算啥,以前寫C還要設記憶體咧

qss0507/20 10:14我覺得VBA難是難在有些EXCEL那些專用的功能,公司有一個專

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

qss0507/20 10:14,然後那些都不命名、不註解,結果接手他的都看不懂他埋在

qss0507/20 10:14哪裡…搞得比單純用程式碼硬幹還難維護

chocopie07/20 21:48這樣他才難以被取代啊

OrzOGC07/20 22:56難以被取代又非用不可的話才有籌碼喊價啊...XD

cathychg11/02 11:38為什麼? 那么做啥 報帳嗎?薪資紀錄