以下是引用HYY514在2010-2-25 21:48:00的发言: Sub ff() Dim Datar As Variant Dim AsDat As Variant Dim ReDat() As Double Dim Dc As Object Dim i As Long Dim tmp As Long Set Dc = CreateObject("scripting.dictionary") With Sheet3 Datar = .Range(.Range("a2"), .Range("c65536").End(xlUp)) End With With Sheet2 AsDat = .Range(.Range("a2"), .Range("c65536").End(xlUp)) End With For i = 1 To UBound(AsDat) Dc(AsDat(i, 1)) = i Next ReDim ReDat(1 To UBound(Datar), 1 To 2) For i = 1 To UBound(Datar) tmp = Dc(Datar(i, 1)) 'Debug.Print tmp ReDat(i, 1) = AsDat(tmp, 3) / 10000 ReDat(i, 2) = AsDat(tmp, 3) / 10000 - Datar(i, 3) Next Sheet3.Range("d2").Resize(UBound(ReDat), 2) = ReDat MsgBox "ok!" End Sub
HYY514老师 谢谢关注, 不过ReDat(i, 1) = AsDat(tmp, 3) / 10000提示下标越界了 |