作者ichol (深色憂鬱的心)
看板Office
標題[算表] vba合併儲存格加總
時間Sun May 31 11:42:23 2015
軟體:
excel
版本:
2010
最近碰到一個合併儲存格的問題
我現在在sheet1有一個總表,想在sheet2輸入自動貼到sheet1並且更新
就很像有"過帳入庫"的概念
因為筆數很多,有時候怕漏打看錯
範例如下
在sheet1
A B C D E
1 料號 批號 數量 合計
2 A101 33A02 20 30 <=這裡用合併儲存格把同料號合計
3 A101 33A03 10
4 B201 1A010 20
5 B201 2A010 5 40 <=這裡用合併儲存格把同料號合計
6 B201 3A012 15
7
8
在Sheet2輸入
A B C D E
1 料號 批號 數量
2 A101 3A010 5
3 B201 4A010 10
4 A101 3A011 20
按下過帳就會加到sheet1,SHEET1變成
結果:
A B C D E
1 料號 批號 數量 合計
2 A101 33A02 20 <=這裡用合併儲存格把同料號合計
3 A101 33A03 10 55
4 A101 3A010 5
5 A101 3A011 20
6 B201 1A010 20
7 B201 2A010 5 50 <=這裡用合併儲存格把同料號合計
8 B201 3A012 15
9 B201 4A010 10
目前我都手動更新,現在因為入庫數量很多
不像以前只有10幾筆,都超過30筆以上
有的會漏掉,忘了加上去(因為看單據KEY),公司沒ERP
想請教各位高手有VBA可以解決嗎???謝謝
8
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.202.152
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1433043746.A.66F.html
→ soyoso: 想到先取消合併(range.unmerge),排序(range.sort) 05/31 11:57
→ soyoso: 接著取料號唯一值(range.removeduplicates) 05/31 12:02
→ soyoso: 或是scripting.dictionary 05/31 12:02
→ soyoso: 有唯一值就可range.find或是worksheetfunction.match來找 05/31 12:05
→ soyoso: 料號首筆儲存格,range.resize配合 05/31 12:05
→ soyoso: worksheetfunction.countif就可取得範圍,再以這個範圍 05/31 12:06
→ soyoso: 合併(merge),其中也會用到範圍偏移(range.offset) 05/31 12:07