在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

哪位大哥能帮忙注释下VBA代码吗?

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