1. 什么是VBA?
Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。而VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。
2.应用场景
当一个重复的工作每天或者更高频率使用时,完全可以用一个程序实现自动化。
比如:我需要每天匹配不同地区不同工作的管理人员,数据量每天在10万+,每天谢公式匹配太耽误时间,所以考虑用VBA实现。
我的结果就是直接点击下识别那个按钮,就等待1分钟左右就可以在C列匹配对应的结果
3.代码
Public Sub 地区业态匹配()
Dim yrr
pt = "D:\日报制作\明细数据\0匹配主键\"
fn = Dir(pt, 0)
Do While Len(fn) > 0
Debug.Print pt & fn
'打开工作簿
Workbooks.Open Filename:=pt & fn, UpdateLinks:=False
If Left(fn, 4) = "业态地区" Then
Workbooks(fn).Sheets("业态地区主键").Cells.AutoFilter
' Workbooks(fn).Sheets("业态地区主键").Rows(1).Delete
yrr = Sheets("业态地区主键").Range("A2:C" & Sheets("业态地区主键").Range("A650000").End(3).Row)
End If
'关闭工作簿,不保存更改
Workbooks(fn).Close savechanges:=False
fn = Dir()
Loop
' yrr = Sheets("业态地区主键").Range("A2:C" & Sheets("业态地区主键").Range("A650000").End(3).Row)
Sheets(1).Select
lsr = Range("A650000").End(3).Row
'===用【业态地区】主键匹配【人员】========================================================================
For i = 2 To lsr
For y = LBound(yrr) To UBound(yrr)
yt_dq_y = yrr(y, 1) & yrr(y, 2)
yt_dq_mx = Cells(i, 1) & Cells(i, 2)
If yt_dq_y = yt_dq_mx Then
Cells(i, 3) = yrr(y, 3)
End If
Next
Next
MsgBox "DONE"
End Sub
4.说明
1.VBA 可以实现的匹配不止可以精准,也可以匹配包含的内容.
2.这种匹配方式必须先建立一个标准的对应文件,然后才根据代码打开这个文件去完成匹配的操作.
希望大家交流指点!感谢!!!