今天同事发现a列和b列需要同样的数量,所以把c列加了起来。 这是用词典操作最快的方法:
源工作区:
这里可以无视D E F G列。 那些只是公式
上升到代码:
Sub Combine2()
Dim r As Integer
Dim sht_s As Worksheet ' source sht
Dim sht_r As Worksheet ' result sht
set sht _ s=this workbook.worksheets (source ) )。
set sht _ r=this workbook.worksheets (result ) )。
ARR=sht_s.range(a1 ) ).CurrentRegion
setd=createobject (scripting.dictionary ) )。
forI=2toubound(arr ) ) ) ) ) )。
ifd.exists(arr(I,1 ) arr (I,2 ) ) Then
d(arr(I,1 ) arr (I,2 ) )=array ) arr (I,1 ),arr (I,2 ),arr (I,3 ) d(arr(I,1 ) ) ) () ) )
Else
d(arr(I,1 ) arr ) I,2 )=array ) arr ) I,1 ),arr ) I,2 ),arr ) I,3 ),I,4 ),arr ),I,5 ),arrr )
End If
下一步
With sht_r
. Cells.Clear
. range(a1 )=)='item )。
. range(B1 )=)='Amount ) )。
. range(H1 )='Plus or not '。
r=2
For Each dk In d.keys
. range(a ) r ).Resize ),8 )=d ) dk ) ) ) ) )。
r=r 1
下一步
结束宽度
最终辅
数据只有7列,但增加1列。 到时候加入标题. range(h1 )=)='Plus or not '作为Title Filter,就知道哪个可以一起了。
结果工作表: