▌序
在知乎上有很多朋友問VBA如何入門?看著代碼密密麻麻看不進(jìn)去。
我想說,我剛開始看也是看著代碼也是撓頭,但是沒辦法,要解決批量處理excel的相關(guān)問題VBA再好不過。一定要堅(jiān)持。
我理解的入門,是看到問題,立馬能想到用哪個(gè)VBA知識(shí)點(diǎn)來解決。如果在腦袋里還能隱隱約約有那么幾句固定格式解決各種問題的代碼,那就算是中等水平了。
其實(shí)我覺得很少人用學(xué)那么深,并且能解決大多數(shù)人遇到的問題的代碼就那么幾類。都可以通過修修改改來實(shí)現(xiàn)自己需要的功能。
代碼太多了,根本不用記,用的時(shí)候找出來需要代碼拼湊修改一下就可以了。這樣的話我覺得對(duì)于一般的小白,從入手到中等水平,需要半年吧。畢竟工作一族不可能每天都有充裕時(shí)間去學(xué)習(xí)。
關(guān)于我自己的幾點(diǎn)經(jīng)驗(yàn)
多看VBA教程
買本書或者看視頻均可(最基礎(chǔ)的,循環(huán),數(shù)組,字典,正則,事件要沒問題,不然修改代碼都不知道如何下手),視頻找適合自己的,適合就是看得進(jìn)去的視頻。
如果實(shí)在看不下去書和視頻,那還是參加專門的培訓(xùn)或者趁早放棄找人代工。
如果你遇到某個(gè)問題,就能想到用什么知識(shí)點(diǎn)來解決,那么恭喜你!就算不會(huì)代碼,你這也算是入門了。不能算小白了。
這個(gè)時(shí)候你需要的是,趕緊翻書或者看教程是如何利用這個(gè)知識(shí)點(diǎn)來解決問題的。并且嘗試自己敲出來代碼,或者錄制宏修改代碼。印象會(huì)很深刻。
學(xué)會(huì)積累和修改代碼
舉個(gè)例子:循環(huán)打開多個(gè)工作簿
估計(jì)好多人聽說VBA是從合并工作簿知道的,合并工作簿是有通用的代碼框架的,記住框架,再也不怕對(duì)工作簿進(jìn)行其他操作。
Sub 循環(huán)打開工作簿()
? ? Application.ScreenUpdating = False
? ? myfile = Dir(ThisWorkbook.Path & "\*.xls*")
? ? Do While myfile <> ""
? ? ? ? ? If myfile <> ThisWorkbook.Name Then
? ? ? ? ? ? ? ? Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & myfile
我是需要填空的代碼
? ? ? ? ? Else
? ? ? ? End If
? ? ? ? myfile = Dir
? ? Loop
? ? Application.ScreenUpdating = True
? ? MsgBox "完成"
End Sub
如果你要提取特定內(nèi)容的單元格,只需要結(jié)合find方法,查找內(nèi)容是“你好”的單元格的行號(hào),并賦值。在空白處填上如下代碼即可。
ThisWorkbook.Worksheets(1).Cells(a, 1) = wb.worksheets(1).Cells.Find("你好", , xlValues, xlWhole, xlByColumns, xlNext, True, True).row
如果你要合并工作簿,那么只需要在填空的代碼里,對(duì)單元格區(qū)域應(yīng)用copy方法。在空白處填上如下代碼即可。
wb.worksheets(1).range("a1").usedrange.copyThisWorkbook.Worksheets(1).range("a1")
上面說的copy方法、find方法只要是入門了的選手,稍微翻翻教程便會(huì)。
諸如上面所舉的例子,好多代碼都是可以套用的,不用背代碼。只要多搜集整理,用的時(shí)候能找到就行。
當(dāng)然,我也會(huì)在以后的文章里面多分享一些通用代碼。希望大家持續(xù)關(guān)注。
= 好文推薦 =