|
3学分
本帖最后由 protel2003 于 2022-4-16 16:14 编辑
请高手用VBA编程的方式,将B列数据自动填充到对应的行上,A列重复几次,就填几个行单元格。1、在VBA中使用excel中公式数组的形式编一下;2、用其他VBA编程的方式再搞一个附件是数据表
谢谢
- Sub 宏2()
- Dim source As Range
- Dim dic As Object, arr, brr
- Set dic = CreateObject("Scripting.Dictionary")
- Set source = Range("a2").CurrentRegion
- Set source = Range("a2").Resize(source.Rows.Count - 1, 2)
- For i = 1 To source.Rows.Count
- With source(i, 1)
- If Not dic.exists(.Text) Then
- ReDim arr(1 To source.Rows.Count + 1)
- arr(1) = 1
- arr(2) = .Offset(0, 1).Text
- dic.Add .Text, arr
-
- Else
- brr = dic(.Text)
- brr(1) = brr(1) + 1
- brr(brr(1) + 1) = .Offset(0, 1).Text
- dic(.Text) = brr
- End If
- End With
- Next
- ReDim arr(1 To source.Rows.Count, 1 To source.Rows.Count)
- For i = 1 To source.Rows.Count
- t = dic(source(i, 1).Text)
- For j = 1 To t(1)
- arr(i, j) = t(1 + j)
- Next
- Next
- [C2].Resize(source.Rows.Count, source.Rows.Count) = arr
- End Sub
复制代码
|
|