這幾天又被搞瘋了
主要要說 利用迴圈將多格儲存格內容合併至一個儲存格 並用換行分隔各個儲存格資料
表1
-------------
原子筆
鉛筆
橡皮擦
-------------
表2
--------------
原子筆
--------------
鉛筆
--------------
橡皮擦
--------------
表1和表2 虛線是看不見的
差別在
1個儲存格有"3行"
各自3個儲存格
表格的線都取消
這樣有差嗎? 為什麼要堅持一個儲存格3行
不管是用WORD還是EXCEL 作業上沒有差吧
誰能告訴我差異在哪?
因為這樣我的VBA又要改格式了
原本考慮用函數concatenate
但是我不是只有簡單幾格(我總共有30-40格˙要合併)
而且我還要換行顯示
(題外話
EXCEL合併儲存格 只會保留第一個儲存格資料
WORD合併 才會保留全部資料
EXCLE 有強制換行(ALT+ENTER))
又是燒腦的另一個開端
簡單來說
sheets(2).cells(1,2)=sheets(3).cells(1,2) & sheets(3).cells(2,2) & sheets(3).cells(3,2)......sheets(3).cells(40,2)
但是我有破百個要這樣做(我有好幾格要合併成1格)
這打到眼睛都會花花的
直接用迴圈啦
--------------------------------------------------------
sub 資料多格合併1格()
for i = 1 to 40
z=sheets(3).(i,2)
if sheets(3).cells(i,2)<>"" Then
z= z & vbLf & sheets(3).(i+1,2) ' vbLf 是換行
Else : exit for '如果是空白 則離開for(迴圈)
end if
next i
sheets(2).cells(1,2)=z '將結果顯示在sheets(2)的B2上
end sub
----------------------------------------------------------
但是EXCEL有限定列高....囧
我只好又拉去WORD顯示
再一次題外話:
active.document--->只要是active開頭的,最好是你已經開啟的東西,若是由VBA開啟,"建議"不要用這個
直接指定documents("檔案名稱")
因為利用active要等他開啟(有時候會累格) 導致系統無法抓取
所以建議還是直接指定檔案名稱是最好的 (我後來發現 他有時候也是無法開啟 可能要寫延遲個毫秒)
並注意active.document是沒有s (使用中只會有一個)
但是指定檔案的時候documents (因為怕多數檔案 所以記得要打s 不然無法使用)
參考資料
1.https://dotblogs.com.tw/wesley0917/2010/12/16/20154
留言列表