這幾天又被搞瘋了

主要要說  利用迴圈將多格儲存格內容合併至一個儲存格 並用換行分隔各個儲存格資料

表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

 


 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 future0613 的頭像
    future0613

    心の日記

    future0613 發表在 痞客邦 留言(0) 人氣()