试试: Sub test() Dim i1 As Integer, arr1(), arr2() Set dr = CreateObject("scripting.Dictionary") Set dc = CreateObject("scripting.Dictionary") With Sheets("C") i1 = .Range("a65536").End(xlUp).Row .Range("b2:f" & i1).Clear arr1 = .Range("A1:f" & i1).Value For i1 = 2 To 6 dc(arr1(1, i1) & "") = i1 Next For i1 = 2 To UBound(arr1) dr(arr1(i1, 1) & "") = i1 Next arr2 = Sheets("92表").Range("f2", Sheets("92表").Range("i65536").End(xlUp)).Value For i1 = 1 To UBound(arr2) If dr.exists(arr2(i1, 3)) And dc.exists(arr2(i1, 2)) Then arr1(dr(arr2(i1, 3)), dc(arr2(i1, 2))) = arr2(i1, 4) Next .Range("A1:f" & dr.Count + 1) = arr1 End With End Sub |