好像理解反了,修改如下:
Public Sub maseter()
Dim Dic As Object
Dim vaKeyofDic As Variant
Dim i As Long, n As Long
Dim rng As Range
Set Dic = CreateObject("scripting.dictionary")
vaKeyofDic = Intersect(Sheet1.Range("b:b"), Sheet1.UsedRange)
For i = 2 To UBound(vaKeyofDic)
Dic(vaKeyofDic(i, 1)) = i
Next i
With Sheet2
For Each rng In .Range("h2", .Range("h2").End(xlDown))
For n = 4 To 6
rng.Offset(0, n) = Sheet1.Cells(Dic(rng.Value), n)
Next n
Next rng
End With
Public Sub maseter()
Dim Dic As Object
Dim vaKeyofDic As Variant
Dim i As Long, n As Long
Dim rng As Range
Set Dic = CreateObject("scripting.dictionary")
vaKeyofDic = Sheet2.Range("h1").CurrentRegion
For i = 2 To UBound(vaKeyofDic)
Dic(vaKeyofDic(i, 1)) = i
Next i
With Sheet1
For Each rng In .Range("b2", .Range("b2").End(xlDown))
For n = 2 To 4
rng.Offset(0, n) = Sheet2.Cells(Dic(rng.Value), 10 + n)
Next n
Next rng
End With
好像理解反了,修改如下:
Public Sub maseter()
Dim Dic As Object
Dim vaKeyofDic As Variant
Dim i As Long, n As Long
Dim rng As Range
Set Dic = CreateObject("scripting.dictionary")
vaKeyofDic = Intersect(Sheet1.Range("b:b"), Sheet1.UsedRange)
For i = 2 To UBound(vaKeyofDic)
Dic(vaKeyofDic(i, 1)) = i
Next i
With Sheet2
For Each rng In .Range("h2", .Range("h2").End(xlDown))
For n = 4 To 6
rng.Offset(0, n) = Sheet1.Cells(Dic(rng.Value), n)
Next n
Next rng
End With