問題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 關注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消