[讨论] 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