|
本帖最后由 jiuri0221 于 2015-4-3 07:46 编辑
要求:工作簿表1和工作簿表2 都有一个相同的编码,想把工作簿2中的数据匹配到工作簿1中。
如果2和1匹配上,就在1的接通日期写上当前日期。
地址列匹配上。
登记时间列匹配上。
如果2的数据在1中没有找到,没有匹配上的数据,它所在各列空着。
我的想法:
在工作簿2关闭的情况下进行查询匹配,因为我还有其他工作簿要匹配。所以为了一会添加程序方便。
大表1和大表2放在 文件夹 C:\Users\my\Desktop\V表
不知道能不能用getfile拿到表2里的数据呢?怎么才能在表2关闭的情况下抓取数据。谢谢。以下是我的思路编的,帮我看看
Public Sub VES()
Dim fso, fld,wb
Set fso = CreateObject("Scripting.FileSystemObject")
'Application.ScreenUpdating = False
'Application.diplayalerts = False
On Error Resume Next
Dim strpath As String
strpath = "C:\Users\my\Desktop\V表" & "\"
Dim strfile, strsheet As String
strfile = "大表2.xlsx"
strsheet = "工单明细报表"
Set fld = fso.getfolder(strpath) ‘找到放表2这个文件夹
wb = Getfile("C:\Users\my\Desktop\V表\大表2.xlsx")
Dim i, j As Integer
Dim lrow2 As Integer
lrow2 = wb.Worksheets(strsheet).Range("a65536").End(xlUp).Row ’找到表2的最后一行
With workbooks("大表1").Worksheets("sheet1")
For i = 2 To .Range("j65536").End(xlUp).Row
rng = wb.Worksheets(strsheet).Range("a1:a" & lrow2).Find(what:=.cell(i, 1)) ‘在表1中的数据与表2匹配
If Not rng Is Nothing Then
.Cells(i, 2) = Date
.Cells(i, 3) = rng.Offset(0, 1).Value
.Cells(i, 4) = rng.Offset(0, 2).Value
End If
Next
End With
Application.ScreenUpdating = False
Application.diplayalerts = False
End Sub
|
|