|
- Application.ScreenUpdating = False '禁止刷屏
- Application.DisplayAlerts = False '禁止弹出对话框
- Range("c4:e" & [c65536].End(3).Row + 10).ClearContents '清空要写入数据的区域
- If Len(Cells(Rows.Count, 1)) = 0 Then
- With Application.FileDialog(msoFileDialogFolderPicker)
- .AllowMultiSelect = False
- If .Show = -1 Then
- mp = .SelectedItems(1) & Application.PathSeparator
- Cells(Rows.Count, 1).Value = mp
- Else
- MsgBox "没有选择要查找的文件夹,退出"
- Exit Sub
- End If
- End With
- Else
- mp = Cells(Rows.Count, Columns.Count).Value
- End If
- mf = Dir(mp & "粘焊车间(数据模板).xls") '文件
- Set dk = Workbooks.Open(mp & mf) '打开粘焊车间(数据模板).xls
- '把打开的文件有数据区域写入数组(是动态的,可以随意添加行)
- arr1 = dk.Sheets(1).Range("a2:e" & dk.Sheets(1).[b65536].End(3).Row)
- '把粘焊文件有数据区域写入数组(是动态的,可以随意添加行)
- arr2 = ThisWorkbook.Sheets(1).Range("a4:b" & ThisWorkbook.Sheets(1).[b65536].End(3).Row)
- For i = 1 To UBound(arr2) '在数组arr1的下限与上限之间循环
- For j = 1 To UBound(arr1) '在数组arr2的下限与上限之间循环
- If arr1(j, 2) = arr2(i, 2) Then '如果流程票号相等
- Cells(i + 3, 3) = arr1(j, 3): Cells(i + 3, 4) = arr1(j, 4): Cells(i + 3, 5) = arr1(j, 5) '写入相应数据
- End If
- Next
- Next
- dk.Close True '关闭文件
- Application.ScreenUpdating = True '允许刷屏
- Application.DisplayAlerts = True '允许弹出对话框
- End Sub
复制代码 |
|