问题1:如何在汇总表中,通过VBA把表A的列“汇总A” ,表B的列“汇总B”,表C的列"汇总C"中的物品1、物品2、物品3的数据全部提取到汇总表中呢?下图分别是汇总表,表A、表B、表C问题2:另外一个假设,如果表C的物品顺序不对的情况下呢?
2 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
这个问题可以使用字典和数组两种编程方式,字典的程序简单一点,数组运行效率更高一点点,但是逻辑稍微复杂一点,下面是数组的写法:
sub 宏1()
dim arr,arr2,n,i,j,k,t,i2
n=0'计算总行数
for each t in array("a","b","c")
n=n+sheets("汇总" & t).usedrange.rows.count
next t
redim arr(1 to n,1 to 4) '结果数组
n=0'结果数组行数
for each t in array("a","b","c")
arr2=sheets("汇总" & t).usedrange
j=asc(t)-asc("a")+2'数据在结果表的列
k=8 '数据在原始表的列
for i2=2 to ubound(arr2)
for i=1 to n
if arr(i,1)=arr2(i2,1) then exit for
next i
if arr(i,1)<>arr(i2,1) then
n=n+1
i=n
arr(i,1)=arr(i2,1)
end if
arr(i,j)=arr2(i2,k)
next i
next t
'保存结果
sheeta("汇总").range("a2").resize(n,4)=arr
end sub
- 2 回答
- 0 关注
- 150 浏览
添加回答
举报
0/150
提交
取消