Board logo

標題: [發問] 不同欄位的資料,要如何堆疊到同一個表格? [打印本頁]

作者: sandra_wang    時間: 2010-11-9 15:36     標題: 不同欄位的資料,要如何堆疊到同一個表格?

請問大家:
我有五組資料,分別有n1,n2,n3,n4,n5筆資料,
而且五組資料的比數都不固定(n1,n2,n3,n4,n5沒辦法固定),
我想要把這五組資料依序堆疊到右邊的表格(214-219列),
請問我應該怎麼做呢? 麻煩大家了!
作者: oobird    時間: 2010-11-9 16:14

Sub yy()
Cells(9, 179).CurrentRegion.Copy Cells(9, 214)
For i = 186 To 212 Step 8
Cells(9, i).CurrentRegion.Offset(1, 0).Copy Cells(9, 214).End(4)(2, 1)
Next
End Sub
作者: GBKEE    時間: 2010-11-9 16:14

回復 1# sandra_wang
  1. Sub Ex()
  2.     Dim Place%, Place_Row%, i%
  3.     Place = 214
  4.     Place_Row = 10
  5.     With ActiveSheet
  6.         If .Cells(Rows.Count, Place).End(xlUp).row >= Place_Row Then
  7.             .Range(.Cells(Place_Row, Place), .Cells(Rows.Count, Place).End(xlUp)).Resize(, 6).Clear
  8.         End If
  9.         For i = 179 To 179 + (7 * 4) Step 7
  10.             .Range(.Cells(Place_Row, i), .Cells(Rows.Count, i).End(xlUp)).Resize(, 6).Copy .Cells(Rows.Count, Place).End(xlUp).Cells(2, 1)
  11.         Next
  12.     End With
  13. End Sub
複製代碼

作者: sandra_wang    時間: 2010-11-10 12:45

To#2 & #3的回覆唷~~解決我的問題了! 謝謝你們!!

To #2 oobird
想請教你~Cells(9, i).CurrentRegion.Offset(1, 0).Copy Cells(9, 214).End(4)(2, 1)
裡面的End(4)(2, 1)是什麼意思呢??
作者: oobird    時間: 2010-11-10 14:07

End(4)(2, 1)
相當於按ctrl+向下鍵,然後再按一個向下鍵。
作者: sandra_wang    時間: 2010-11-10 16:47

謝謝oobird的解答~
作者: sandra_wang    時間: 2010-11-26 09:39

本帖最後由 sandra_wang 於 2010-11-26 09:41 編輯

To oobird:
我今天用你提供的答覆去跑資料的時候有發現問題...
可以請你幫我看一下嗎?

當資料如附件(資料堆疊問題(To oobird ).zip)那樣的時候,巨集就不能跑了!!
作者: sandra_wang    時間: 2010-11-26 09:56

To GBKEE:
我今天使用你提供的答覆跑資料的時候也發現一個問題,
當我第10行的資料是空白的時候,它會把第9行的資料(表格名稱)抓取過去欄位214-219
請問我要怎樣才能避免資料有空白的時候,表格名稱會被抓過去呢?
可以請你幫我看看附件(資料堆疊問題(To GBKEE).zip)嗎?
作者: oobird    時間: 2010-11-26 11:03

沒看懂你的目的。
Cells(9, m).CurrentRegion.Offset(1, 0).根本沒資料。
作者: GBKEE    時間: 2010-11-26 14:22

回復 8# sandra_wang
For i = 179 To 179 + (7 * 4) Step 7
            If .Cells(Place_Row, i) <> "" Then  '加上條件不是空白時      
                  .Range(.Cells(Place_Row, i), .Cells(Rows.Count, i).End(xlUp)).Resize(, 6).Copy .Cells(Rows.Count, Place).End(xlUp).Cells(2, 1)
            End If  
Next
作者: GBKEE    時間: 2010-11-26 14:40

回復 7# sandra_wang
會發生錯誤 同8樓問題 遇到沒資料時
Cells(9, 218).End(4)  會到檔案最底列的位置 2003 的ROWS.COUNT 為65536
Cells(9, 218).End(4)(2, 1) 是檔案最底列下移1列的位置 =65537 所以產生錯誤
改成由檔案最底列往上到有資料列的下一列試試看
Cells(9, m).CurrentRegion.Offset(1, 0).Copy Cells(Rows.Count, 218).End(3)(2, 1)
作者: yagami12th    時間: 2012-1-4 19:49

我想到的概念是先用條件判斷把資料抓到其他工作表,然後再貼回來,因為沒權限不能下載檔案,只能想想概念。可能是我現在只會用if判斷然後再貼回來,所以很多問題都被我看成這樣的問題。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)