在知识兔上有很多朋友问VBA如何入门?看着代码密密麻麻看不进去。

我想说,我刚开始看也是看着代码也是挠头,但是没办法,要解决批量处理excel的相关问题VBA再好不过。一定要坚持。

我理解的入门,是看到问题,立马能想到用哪个VBA知识点来解决。如果在脑袋里还能隐隐约约有那么几句固定格式解决各种问题的代码,那就算是中等水平了。

其实我觉得很少人用学那么深,并且能解决大多数人遇到的问题的代码就那么几类。都可以通过修修改改来实现自己需要的功能。

代码太多了,根本不用记,用的时候找出来需要代码拼凑修改一下就可以了。这样的话我觉得对于一般的小白,从入手到中等水平,需要半年吧。毕竟工作一族不可能每天都有充裕时间去学习。

关于我自己的几点经验

●多看VBA教程

买本书或者看知识兔课程视频均可(最基础的,循环,数组,字典,正则,事件要没问题,不然修改代码都不知道如何下手),视频找适合自己的,适合就是看得进去的视频。

如果实在看不下去书和视频,那还是参加专门的培训或者趁早放弃找人代工。

如果你遇到某个问题,就能想到用什么知识点来解决,那么恭喜你!就算不会代码,你这也算是入门了。不能算小白了。

这个时候你需要的是,赶紧翻书或者看教程是如何利用这个知识点来解决问题的。并且尝试自己敲出来代码,或者录制宏修改代码。印象会很深刻。

●学会积累和修改代码

举个例子:循环打开多个工作簿

估计好多人听说VBA是从合并工作簿知道的,合并工作簿是有通用的代码框架的,记住框架,再也不怕对工作簿进行其他操作。

Sub 循环打开工作簿()
  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
如果你要提取特定内容的单元格,只需要结合find方法,查找内容是“你好”的单元格的行号,并赋值。在空白处填上如下代码即可。

ThisWorkbook.Worksheets(1).Cells(a, 1) = wb.worksheets(1).Cells.Find("你好", , xlValues, xlWhole, xlByColumns, xlNext, True, True).row
如果你要合并工作簿,那么只需要在填空的代码里,对单元格区域应用copy方法。在空白处填上如下代码即可。

wb.worksheets(1).range("a1").usedrange.copyThisWorkbook.Worksheets(1).range("a1")
上面说的copy方法、find方法只要是入门了的选手,稍微翻翻教程便会。