|
本帖最后由 dc201010 于 2020-3-14 15:49 编辑
源数据表:
论坛找到的代码:
- Sub lqt()
- Dim wb As Workbook
- Dim d As Object, d1 As Object
- Set d1 = CreateObject("scripting.dictionary")
- If Range("c65536").End(3).Row > 1 Then
- Range("a2:AW" & Range("c65536").End(3).Row).ClearContents
- End If
- arr = Sheets(1).UsedRange
- For j = 1 To UBound(arr, 2)
- d1(arr(1, j)) = j
- Next
- Set wb = GetObject(ThisWorkbook.Path & "\收集表.xlsx")
- With Workbooks("收集表.xlsx")
- brr = .Sheets(1).UsedRange
- ReDim crr(1 To UBound(brr), 1 To 48)
- For i = 3 To UBound(brr)
- If Len(brr(i, 1)) <> 0 Then
- m = m + 1
- For j = 1 To UBound(brr, 2)
- If d1.Exists(brr(1, j)) Then
- n = d1(brr(1, j))
- crr(m, n) = brr(i, j)
- End If
- Next
- ' brr(m, 3) = arr(i, 1): brr(m, 4) = arr(i, 2): brr(m, 5) = arr(i, 3)
- ' brr(m, 6) = arr(i, 18): brr(m, 7) = arr(i, 16): brr(m, 8) = arr(i, 17): brr(m, 9) = arr(i, 19)
- ' For j = 10 To 20
- ' brr(m, j) = arr(i, j - 5)
- ' Next
- End If
- Next
- .Close 0
- End With
- Columns(3).NumberFormatLocal = "@"
- Columns(7).NumberFormatLocal = "@"
- [a2].Resize(m, 48) = crr
- Set wb = Nothing
- End Sub
复制代码
当前代码实现效果:
想要实现的效果:
问题说明:
附件:
对应表头数据.rar
(39.96 KB, 下载次数: 12)
|
|