返回列表 上一主題 發帖

多資料匯整成在同data中

多資料匯整成在同data中

DEAR 大大們

      小弟又來請教了, 問題是需要將多活頁的資料,匯到同一個data中,如附件概述
      1.  附件中sheet A B兩個資料總合在DATA中   (我的方式是一筆一筆貼,在少筆數的處理上還OK, 但我的筆數為 列大於10000  欄約 15 - 25 )
                                                                           有沒有比較好的寫法
      2. 在匯入時需要將SHEET A B 欄頭的月份與DATA欄頭月份需要一樣才能匯入  (小弟還未撰寫 ,但是會用IF的放式做判別後,相同才執行匯入動作)
            多資料匯整成在同data中.zip (989.78 KB)

回復 13# oobird
我不是說哪個方式好啦,其實任何問題最重要在於使用者
使用者會用的方式,只要能解決問題就是好方法
程序用快速鍵驅動
可檢閱工作表資料無誤再執行(有時半自動也會有好處)
附件中
複製資料用Ctrl+p
刪除資料用Ctrl+d
多資料匯整成在同data中.zip (982.81 KB)
學海無涯_不恥下問

TOP

我沒說定義名稱不好哇,尤其定義一個名稱可供多表使用絕對是最佳方式。
我還是刪了較好。

TOP

回復 10# oobird

其實定義有定義的好處,就算多表,只要各表資料起始位置確定一樣
那麼只要一個定義,然後使用同一個程序就能達到各表資料複製
只差一個就是必須Sheet需要Select
當然各有所長,端看使用者的需求
學海無涯_不恥下問

TOP

喔,我當然知道你的用意,你是辦事情相當嚴謹牢靠的人,所以懂得自我要求到最完美。
我則隨便慣了,也常凸槌!

TOP

Rows.Count 顧名思意當然是指列的總數,通常直接用65536oobird 發表於 2010-12-3 14:18

我的Excle版本是2003版 Rows.Count=65536 ,2007版 ??, 2010版 ??
每當程式碼如有計算到檔案最底端列的數值,我習慣用Rows.Count,可通用所有版本避免錯誤產生.

TOP

問題1:大大的Next 為什麼沒有加S
不一定要加S,程式自己會知道Next什麼,以前有人認為加上去程式才不會搞錯,怎麼可能搞錯。實際測試多層循環時,不加跑得比加上的更順暢。

問題2. CurrentRegion 與 Offset 是什麼意思???
CurrentRegion是一個連續資料的範圍,如你的a1:g100有資料,那麼[a1].CurrentRegion就是[a1:g100]
Offset是位移,CurrentRegion.Offset(1)就是把這個範圍向下位移一列,通常為了避開標題列。
Rows.Count 顧名思意當然是指列的總數,通常直接用65536。

TOP

回復 5# GBKEE


Dear 大大
    您寫的方式, 想請你幫忙指較我所理解的對不對
   
   1. Dim S As Worksheet     將S指為工作頁的變數
     2. For Each S In Sheets(Array("A", "B"))  ~  Next        使用陣列將中每一個SHEET 資料放在S這個SHEET
                                                                                         問題1:大大的Next 為什麼沒有加S 是因為陣列的原因嘛???
    3. S.Range("D6").CurrentRegion.Offset(1).Copy          問題2. CurrentRegion 與 Offset 是什麼意思???
    4. Sheets("DATA").Range("D" & Rows.Count).End(xlUp).Cells(2)
                         問題3.   Rows.Count 的意思???

TOP

回復 4# GBKEE


    謝謝大大詳細的程式碼說明~ 小弟已經能夠對END的用法清楚了解~

TOP

表格位置若都相同,使用共用參照
=OFFSET(!$A$2,,,COUNTA(!$A$1:$A$65536)-1,20)
可使多表使用同一名稱,巨集也可只使用同一巨集
學海無涯_不恥下問

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題