作者tina1688 ()
看板Office
標題多列合併一列&合併各別欄位內容
時間Fri May 24 14:08:15 2019
各位大大
請教如何用VBA
將多列合併為一列,
判斷A欄相同,
將BCD欄合併以「、」串接(內容不重複)
有看別人用Scripting.Dictionary
但不知如何修改
再麻煩大大解析
示意圖
https://i.imgur.com/ZMvBt0B.jpg
檔案
http://t.cn/E9RkRGL
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.9.40.140
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Office/M.1558678097.A.9F7.html
1F:→ soyoso: 以示意圖來看,b欄方面,巢狀迴圈,外迴圈於f2:f4。 05/24 14:49
2F:→ soyoso: 內迴圈看是1.判斷a2:a8是否於f2:f4相同,2.或是a欄range. 05/24 14:49
3F:→ soyoso: find搜尋f2:f4。 05/24 14:49
4F:→ soyoso: 接著dictionary b2:b8的值是否已存在exists,不存在就新增 05/24 14:49
5F:→ soyoso: add。 05/24 14:49
6F:→ soyoso: c2:c8方面有寫到c欄為唯一值,所以就以一個變數來連接&字 05/24 14:49
7F:→ soyoso: 串 05/24 14:49
8F:→ soyoso: 每當內迴圈執行完畢後,代碼方面將dictionary的項目items 05/24 14:49
9F:→ soyoso: 以join來合併,合併字元就以內文所寫的"、",那序號方面則 05/24 14:49
10F:→ soyoso: 將變數寫入(這方面要要連接時是否就有加上"、"來合併,有 05/24 14:49
11F:→ soyoso: 的話配合mid) 05/24 14:49
12F:→ soyoso: d欄不確定邏輯是什麼,因為編號A01有產品別A01ac和A01a, 05/24 14:50
13F:→ soyoso: 但只有要寫入A01ac。 05/24 14:50
14F:→ soyoso: 補充,dictionary要移除所有項目的話,removeall;變數(字 05/24 14:57
15F:→ soyoso: 串型態)則是再寫入空字串"" 05/24 14:58
16F:→ tina1688: 大大謝謝,有點難,我來好好研究一下@@ 05/24 18:59