個人工作上常用到EXCEL,因為看到VBA可以處理一些經常性或者重複性的問題,所以油然而生想要下功夫學。
不過學了一些,看了一些技術系的文章或者書本,遇到的困境是,比較多的時候是不知道要怎樣解題,或者說有點頭緒後,但感覺只是入門的第一二步而已,所以感覺就是挫折。
屢屢看到有人發問問題,自己也曾經發問過,但是看到有人提供解決的方案,總覺得自己怎麼就是沒有想到(其實是壓根都沒有任何解題的概念),特別是高手提供答案,心理面夾雜很多的羨慕和有些灰心,當然也勉勵自己,萬丈高樓平地起,只是學到現在,只有身處平地的感受存在。
希望跟我一樣學習的可以一起分享勉勵(同溫層取暖吧)
更希望精通的高手更可以分享學習的歷程,讓新手的我們可以看到正確的方向。
不明白不懂??
問
被k
再問
被唸
不死心又問了很白吃的問題
直接被飆
(心灰但不意冷)
總算試出來了,繼續!!
啊!!又卡關了
再發問
你怎麼又來了
感謝大大們讓我問笨問題
不想回答你
你滾吧
加油!
你可以的
.
.
.
(經驗過程太多太煩到不知道如何說明.....)
以上就是我的學習過程中的感覺。
簡單來說,以前的我,就是一台電腦,一直試做,不懂就問。
被罵還是問。想到就去書局。(曾經花了一天的時間再書局找書,買了4大本)
當時,罵過我的不下10個人。也遇過邊罵邊教我的。
我到現在都很感謝那些人。(只是不知道有沒有在這邊)
不過不能拿我來當範例。每個人的學習方式是不同的。
我的學習歷程算是很怪胎。就是一直做小東西。
永遠都沒有所謂的成品。所有的東西都一直在90%完成度。
(明明一直再修改)
懶了,就換另一個方案。
就這樣子學過來的。
看到您的回復,感覺很溫暖,原來您的經歷也有這樣的歷程啊
請問,您是本科系的還是像我四不像,就是因為工作上有需要,所以就學了
不都不是資訊科系的。
會往程式設計這一個工作真的是意外。
我的本職學能本是水電外加音樂系。(很奇怪的組合)
後來想做吃的。
為了要整理琴譜跟音樂組合。去研究了一些程式的寫法跟應用。
為了整理食譜。學了資料庫的應用。
之後想要架一個自已的站搞不定。拿了一個套裝的東西來架。
又學了主機架設跟網頁程式。
覺得套裝不符合我要用的,一直修改成我自已要的東西。
然後就不小心的,走上了這條不歸路了。
反正我的學習過程,真要說的話,沒有一次是為了寫程式而學程式的。
很莫明奇妙吧!!
idnoidno
我比較想問你上次的問題有成功嗎?
Excel畢竟不是規範的格式文件,只要是人輸入的,就難免有錯,非數字,全型半型混用,非格式化的儲存格數字給你打千分位逗點,跳格,跳行,字串後面跟空白,匯入格式不正常,時間日期格式沒規範......
以上都還好,問題最大的就是VBA十幾年沒進步,效能不彰不說(從第1行讀到10000看看),連要用個正則表達式都要考慮到中文是雙位元的問題...一系列下來,我現在都學會用其他程式語言來處理EXCEL資料內容,放棄VBA
關於listennn08 大大詢問
我比較想問你上次的問題有成功嗎?
當時是因為工作上要申報一些費用
因為好些人要一起填資料
最後我在核對計算
因為計算雖然有公式可以用
但是公式的儲存格不保護
有時候會被同事不小心動到
所以才開始使用VBA
最初是使用循環的方式計算
後來因為靠但ARRAY的用法
所以改為陣列的方式處理
學到皮毛後,才發現不會的更多
特別是論壇上看到問題和解答有(自己不會)
都有種無名的挫折感升起
idnoidno
挫折感我是覺得不用,如果你換個方向想,要是你克服了一個問題,你會得到更大的成就感,要用加分法去看事情,而不是用一時的挫折來扣掉你滿滿的熱情
再多也沒得跌坑來扣
至於listennn08.......我一時熊熊沒想起來是什麼事,提示一下下~~~~
VBA是我工作上第一個使用的程式語言
其實我覺得使用上很貼近一般使用者
因為各公司應該還是廣為使用Excel進行日常作業
所以VBA在操作上跟使用者比較沒有距離
學習面來看
我覺得不用想得太複雜 先不用覺得我要了解到某個程度
好像我一定要清楚了解這個型態、語法、函式等等
因為這對初學者來說 太有壓力了
你可以單純以功能面來著手
去思考 我要怎麼達到這個功能
拆解成一個一個步驟去實現
如果不清楚這個步驟怎麼用VBA寫 就去查資料(GOOGLE、各大論壇、、、)
也可以善用內建的錄製巨集
例如:
我有一個基準值(D2) 若B欄位的數值小於基準值 A欄位我就顯示黃色 (像下圖)
思路可以像這樣
For i = 1 To Range("A1").End(xlDown).Row
XXX
Next
If Range("B" & i) < Range("D2") Then
XXX
END
If Range("B" & i) < Range("D2") Then
Range("A" & i).Interior.Color = 65535
END
這樣看起來沒有問題了 但如果我資料會變動
原本黃底的欄位 值可能大於基準值了 那怎麼辦
If Range("B" & i) < Range("D2") Then
Range("A" & i).Interior.Color = 65535
Else
Range("A" & i).Interior.ColorIndex = xlNone
End If
彙整上述步驟 語法就會是這樣 就可以達到上圖的效果
Sub test()
For i = 1 To Range("A1").End(xlDown).Row
If Range("B" & i) < Range("D2") Then
Range("A" & i).Interior.Color = 65535
Else
Range("A" & i).Interior.ColorIndex = xlNone
End If
Next
End Sub
我覺得這樣可以讓你學習起來比較輕鬆
用"功能"面去思考 也比較有感
而且達成你要的結果會很有成就感
久了做下來 其實功力就會慢慢加深加廣了
以上經驗分享
我建議是按部就班,先求有再求好。
第一階段求有
推進進度,拿到credit,對公司有交代。
這個時期難免有髒code。
第二階段求好
讓技術精進。
逛stack overflow、iT邦幫忙,看看高手怎麼寫code
另外,我覺得解題可以先試著用EXCEL的錄製巨集的功能。
之後再去用CreateObject引用其他的Lib。
VBA會錄巨集會改能跑就好,真的不要花太大的心力。
現在也有很多語言能產xlsx,基本上該有功能也都有,花太大的心力去學好一個快過時的東西沒啥必要。
現在python的生父加入微軟並且是在office的team,或許之後office會生出個pya之類的鬼東西。XD
VBA你想成拆成VB,巨集各個集破
VB + Marco = VBA
學好VB在來用錄製在
VBA的語法屬性太不太可以用背的去推理
再看程式嗎?
再K官方文件
https://docs.microsoft.com/zh-tw/office/vba/api/overview/
再看YOUTUBE
VBA真是個神奇玩意,歐萊禮都沒再推出相關書籍了就大概知道業界情況
先別管VBA了你有聽過Python嗎?
我也是過來人,主要是看想解決什麼問題,然後解決問題中找到樂趣,這樣才有學習的動力,不論是VBA或者是其他語言。
另外,Excel VBA跟Access VBA的功能差蠻多的,如果要學VBA,可以先試著用Excel錄製巨集的方式取得一些VBA碼,從中學習語言結構,有大量資料需要整理的時候,會建議轉到Access上處理,這時候Access VBA才有發揮的餘地,但這個學習曲線較陡峭,因為沒有錄製巨集的功能,就單純手key,這時候就會建議上YouTube找一下Access相關的教學影片,會對學習Access VBA有幫助。
感謝您的回覆,可以請教,依您的學習經驗,可以介紹可以參考學習資源的資訊嗎,例如網站或者書籍,謝謝
影片:電腦學習園地
https://www.youtube.com/c/pclearn/playlists
之前在裡面學習了不少東西,不過他舊的影片好像有一次不明被YouTube砍影片後就沒補上,目前上面都是較新錄製的,有些還沒補齊
網站的部份有很多,其實Google一下關鍵字都可以找到一些,iT邦幫忙的鐵人賽也有不少人寫相關文章,我就參加了3次,有機會可以看看