|
本帖最后由 dequang 于 2019-2-14 22:14 编辑
你第一个附件里装箱单有的部门数据源里的不大一致,帮你整理了下,大标题的合并单元格也还原了,你看下要上班了,没时间啊,后面的问题一样的话你自己改下吧
Sub 整理()
'将"数据源"的数据放入数组arr
arr = Sheets("数据源").Range("a2:f" & Range("a" & Rows.Count).End(xlUp).Row)
'将"装箱单"中的数据放入数组brr
brr = Sheets("装箱单").Range("a5:e" & Range("d" & Rows.Count).End(xlUp).Row)
For i = 1 To UBound(arr)
If Mid(arr(i, 3), 1, 5) <> "" And Mid(arr(i, 3), 1, 5) <> "海铁公安处" Then
arr(i, 3) = "海铁公安处" & arr(i, 3)
End If
Next
Sheets("数据源").Range("c2").Resize(UBound(arr), 1) = Application.Index(arr, 0, 3)
For i = 1 To UBound(brr)
If brr(i, 3) <> "" And brr(i, 3) <> "姓名" Then
If Mid(brr(i, 2), 1, 5) <> "海铁公安处" Then
brr(i, 2) = "海铁公安处" & brr(i, 2)
End If
End If
Next
Sheets("装箱单").Range("b5").Resize(UBound(brr), 1) = Application.Index(brr, 0, 2)
End Sub
Sub 录入装箱单()
Sheets("装箱单").Range("e5:e" & Range("d" & Rows.Count).End(xlUp).Row).ClearContents
'将"数据源"的数据放入数组arr
arr = Sheets("数据源").Range("a2:f" & Range("a" & Rows.Count).End(xlUp).Row)
'将"装箱单"中的数据放入数组brr
brr = Sheets("装箱单").Range("a5:e" & Range("d" & Rows.Count).End(xlUp).Row)
For i = 1 To UBound(brr)
'装箱单的空行及标题行跳过
If brr(i, 3) <> "" And brr(i, 3) <> "姓名" Then
'以品种名称部门姓名性别作为关键字,如“大檐帽海铁公安处领导袁国辉男”作为关键字进行对比
x = brr(i, 1) & brr(i, 2) & brr(i, 3) & brr(i, 4)
For j = 1 To UBound(arr)
y = arr(j, 1) & arr(j, 3) & arr(j, 4) & arr(j, 5)
If y = x Then
brr(i, 5) = arr(j, 6) '关键字一样则装入型号
Exit For '在数据源找到时不再往后找,继续装箱单下一个关键字,减少运行时间
End If
Next
End If
Next
Sheets("装箱单").Range("e5").Resize(UBound(brr), 1) = Application.Index(brr, 0, 5)
End Sub
|
|