A、B、C列是原数据,FGH列是VBA运行后的结果。代码如下:Sub s()arr = [a1].CurrentRegionSet d = CreateObject("scripting.dictionary")k = 1For i = 2 To UBound(arr)t = arr(i, 1) & arr(i, 2)If Not d.exists(t) Thenk = k + 1d(t) = kIf k <> i Thenarr(k, 1) = arr(i, 1)arr(k, 2) = arr(i, 2)arr(k, 3) = arr(i, 3)End IfElsearr(d(t), 3) = arr(d(t), 3) + arr(i, 3)End IfNext[f1].Resize(k, 3) = arrEnd Sub大神,能帮忙写个注释吗,我看不太懂
最新回答
-失败是成功他爹%
2025-03-30 02:38:55
sub s() 获取A1单元格所在的区域赋值到数组arr中 即:A1:C15 创建字典对象 K=1 FOR i= 2 to 数组上界索引号 即:总行数15 t= arr(第i行,第1列)&arr(第i行,第2列) 例如:张12019/10/16 if 字典不存在这个字符串键值 k=k+1 将k存入字典,并指定键值为t 如果 k<>i arr(k行,1列)=arr(i行,1行) arr(k行,2列)=arr(i行,2行) arr(k行,3列)=arr(i行,3行) end if else arr(k行,第3列)=arr(k行,第3列)+arr(i行,第3列) 即:第3列数值累加 end if [f1].resize(k,3)=arr 即:将AB列同样数据的行对应的第3列值累加后的数组传递到单元格F1开始处 end sub