从我个人学习VBA的经验来看,学习VBA,首先就要学会使用录制宏这个功能,这个可以解决工作中大部分问题。
其次,找一本VBA的书,从基本语法,数字类型,基本语句(循环,数组,字典,正则,事件)慢慢积累。
最重要的要有对象思维,VBA有EXCEL对象,Range对象,Sheet对象等等。
学会积累和修改代码,遇到比较好的代码可以收藏起来。
比如:
打开指文件夹下的文件:
Sub FindFile()
Dim path, name, fileName As String
name = "CSV" '要查找的文件夹
path = ThisWorkbook.path & "\" & name & "\" '拼接文件夹下的路径
fileName = Dir(path & "*.csv") '查找文件夹下是csv后缀的文件
Do While fileName <> "" '停止条件是文件夹下没有了文件
Workbooks.Open (path & fileName) '打开文件
fileName = Dir '找到下一下文件
Loop
End Sub
查找单元格内容:
sum test()
Dim rs As Range
With Range("A1:C30") '查找的区域
Set rs = .Find(2) '查找单元内容是2的,返回单元格对象
If Not rs Is Nothing Then '如果查找到单元格内容是2的就遍历
Do
rs.Value = "修改了"
'rs.Interior.ColorIndex = 3 '单元格背景色
rs.Interior.Color = RGB(255, 220, 210)
Set rs = .FindNext(rs) '找到下一个单元格
Loop While Not rs Is Nothing
End If
End With
End sub
高级筛选:根据条件区域来筛选并复制:
Sheets("DATA").Columns("A:D").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("B1:C2"), CopyToRange:=Range("A4"), Unique:=False
隐藏偶数行:
ActiveSheet.UsedRange.Rows.Count //最后下到上第一个非空行
For i = ActiveSheet.UsedRange.Rows.Count To 2 Step -1
If i Mod 2 = 0 Then Rows(i).Hidden = True
Next i
这样,把常用的的VBA代码保存下来,把每条语句加上注释,多多使用。
好多代码都是可以套用的,不用背代码。只要多搜集整理,用的时候能找到就行。