雖然VBA好廢,但有無自學既巴打?

139 回覆
3 Like 11 Dislike
2023-09-06 00:57:23
係做開呢行嘅 一google乜都有啦
2023-09-06 00:59:40
點解成日pastespecial都會error低明明如果逐行run係冇問題
2023-09-06 01:03:30
建議睇個task需要咩功能再學
例如我想automate excel data 自動整個ppt出黎
我唔會一開始溫晒PPT Excel VBA互動點整

基本call function / control flow個啲識咗應該就得
同埋比較重要嘅就係點拎cell value / array 之類
2023-09-06 19:06:36
前幾年去工聯會上左幾堂,唔記得晒
2023-09-06 19:09:03
Excel + power query + power automate + power bi 暫時可以應付哂工作情況
2023-09-06 19:10:27
反而vba 以前學左好耐都唔係好識
2023-09-06 19:11:46
收到,多謝巴打意見

而家初步係識左基本先,然後拆人地啲code同搵啲task寫下
2023-09-06 19:12:23
你以上提既剩係識excel
2023-09-06 19:32:01
人地新手就叫人用VBA係2個applocation轉黎轉去,你認真?
2023-09-06 19:46:03
建議你搵啲極簡單嘅公司task,諗辦法用vba做

例如
1.將某excel worksheet嘅formatting轉做你想要嘅樣
2.將worksheet a某一啲cell value,copy去另一張worksheet

一開始就Google睇吓人哋點樣做,明白概念就開始背google出嚟既常用基本語法,例如range. .cells()

當你大概知到用咩語法但寫唔出,就善用F8錄製功能(你google下),只要你人肉做得出,佢自己會gen相關嘅曲俾你睇返(不過要留意,通常啲曲都係唔靚仔,但係你會知道方向係點)

不斷重複到你覺得有樽頸位,就chatgpt/用其他AI屌你個問題俾佢,佢會直接出答案,你未必可以同佢個答案直接套用到,但係望住ai個答案,就會知個概念點樣做點樣做,有咩語法自己唔識。

加油,我就係咁係公司久唔久就用vba解決問題
2023-09-06 20:12:12
多謝巴打咁詳盡既解說同鼓勵,剛跟個site學完基本野,叫做有少少概念,你講既方法好啱我下一步用,因為就係想試簡單task同google人地啲code黎拆

2023-09-08 06:23:09
google果part建議唔好諗住直接skip用chatgpt,因為你無google過,未必會知可以用唔同builtin method/function做到

有時chatglt未必會比最直接嘅code你,個人經驗

如果某一類問題你都google過有咩唔同方式搵,同知道自己幾時啱用,我會直接叫gpt比果個方法既code我

例如搵某column最後一行,可以用.Rows,可以用.xl(上下左右),你唔同情況用唔同方法自己先最方便寫/maintain
2023-09-08 17:41:44
收到,同埋我無chatgpt用,所以基本上都係一唔明個code就google,而家叫睇得明少少code,但當然仲有好長路要行

多謝晒巴打意見,你真有心
2023-09-11 18:02:06
無chatgpt 可以試下用bard,估計ok⋯估炸,極少用
2023-09-12 13:21:33
而家睇住啲答案做task,剛做一個有do loop加兩個if就好難記個flow,睇就明,但默番出黎成日錯左先後
2023-09-15 13:01:49
巴打,想請教你少少問題,而家玩緊 nested loop task,但有度唔明就係 “Temp = myArray(j)” (task answer) 果度,有時啲task係會”Temp=myArray(i)” , 我試過兩個都會出同樣result, 出到ABCDE, 咁其實係咪兩個都得?


Sub vba_sort_array()

Dim myArray() As Variant
ReDim myArray(5)
Dim i As Integer
Dim j As Integer
Dim Temp As String

myArray(1) = "E"
myArray(2) = "D"
myArray(3) = "C"
myArray(4) = "B"
myArray(5) = "A"


'sorting array from A to Z
For i = LBound(myArray) To UBound(myArray)

For j = i + 1 To UBound(myArray)
If UCase(myArray(i)) > UCase(myArray(j)) Then
Temp = myArray(j)
myArray(j) = myArray(i)
myArray(i) = Temp
End If

' For j = i + 1 To UBound(myArray)
' If UCase(myArray(i)) > UCase(myArray(j)) Then
' Temp = myArray(i)
' myArray(i) = myArray(j)
' myArray(j) = Temp
' End If
'

Next j
Next i

Debug.Print myArray(1)
Debug.Print myArray(2)
Debug.Print myArray(3)
Debug.Print myArray(4)
Debug.Print myArray(5)

End Sub
2023-09-16 09:42:52
學d新野啦
2023-09-16 09:46:03
其實vba已經好易睇
Google方面可以嘗試搵啲你睇得明嘅code先用
因為唔同人有唔同寫法
2023-09-16 09:50:33
原來係咁

因為做啲task無解釋呢段排序法

原來總之交換數據正確就得,唔該晒巴打
2023-09-16 09:51:56
因為excel真係會用到,同對白紙既我黎講簡單啲

如熟左啲,打算學 python,聽人講呢個易同common
2023-09-16 09:53:07
而家叫做睇得明,不過自己睇題目做時都會有少少甩漏,有時就自己改另一寫法,或者係答案加啲function
2023-09-16 09:57:52
lm
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞