|
发表于 2013-2-17 23:54
|
显示全部楼层
本楼为最佳答案
本帖最后由 cbg2008 于 2013-2-18 00:01 编辑
dcybt 发表于 2013-2-17 23:21
能改成VBA吗。因为真实的表格有几万条。公式这样有点麻烦。。。。谢谢了。。 - Sub Data_Analysis()
- On Error Resume Next
- Dim Arr_Output, Arr_Input, i&, j&, iRow&
- Dim D As Object
- Application.ScreenUpdating = False
- Arr_Input = Sheets("2表").UsedRange.Value
- Set D = CreateObject("Scripting.Dictionary")
- D.CompareMode = vbTextCompare
- For i = 2 To UBound(Arr_Input)
- D(Arr_Input(i, 2)) = i
- Next
- With Sheets("1表")
- Arr_Output = .UsedRange
- For i = 2 To UBound(Arr_Output)
- iRow = D(Arr_Output(i, 2))
- For j = 7 To 13
- Arr_Output(i, j) = Arr_Input(iRow, j - 4)
- Next j
- Next i
- .Range("A1").Resize(UBound(Arr_Output), UBound(Arr_Output, 2)) = Arr_Output
- End With
- Application.ScreenUpdating = True
- MsgBox "已填写完毕!"
- End Sub
复制代码 |
|