返回列表 上一主題 發帖

[發問] 將工作頁的資料複製到另一工作頁(利用shift end)

[發問] 將工作頁的資料複製到另一工作頁(利用shift end)

請問各位前輩
我想將某一sheet(1)的資料複製到另一個sheet(2)上,最後統一在同一列上
但是每一列的資料範圍都會不同,但是起點都是一樣的
所以我利用以下方式,但是我卻不知道如何將所抓到的資料複製到sheet(2)上

    sheet(1).select                                                                                          ' 選擇資料來源工作頁
    iCount = Range("A3", Range("A3").End(xlToRight)).Count        '先抓共有多少列的資料
    Range("A3").Select                                                                                   '先點選開始抓取的起點
    For x = 1 To iCount                                                                                 
        Range(Cells(3, x), Cells(3, x).End(xlDown)).Select                      '選擇第一列的資料
        接下來應該是將上面抓取的資料複製sheet(2)
        當下一列資料抓到會接著複製下去
    Next

我想知道的是如果是用我這方式是否可行, 應該怎麼
另外也想知道是否有其他更淺顯易懂的方式

謝謝

回復 2# register313


這樣不是只適用於sheet(1) 的資料都在同一列時嗎??

還是說  CurrentRegion  可以將sheet(1) 所有資料  包含不同列  全部選取後  copy 到 sheet(2)的同一列上嗎??

TOP

回復 4# register313

抱歉大大,您可能沒搞懂我的問題

sheet(1) 的資料
未命名.JPG
我希望複製到sheet(2) 時,資料是這樣
因為每欄每列的資料數目不同所以我是利用count先計數來計算數量之後再貼上sheet(2)
而我再複製到sheet(2) 的地方卡住


而您上面所提供的方式
sheet(2) 仍會是這樣
3.JPG
   
是否有其他方式可以完成我上圖的結果??

TOP

回復 6# Hsieh

謝謝各位前輩幫忙~我也額外學到兩種方式
下面是我剛剛所想到的~也一併分享
  1. Sub test()
  2.     Sheets("1").Select
  3.     Dim iCount, iColumn, x, y As Integer
  4.     iCount = Range("A3", Range("A3").End(xlToRight)).Count
  5.     Range("A3").Select
  6.     y = 0
  7.     For x = 1 To iCount
  8.         Range(Cells(3, x), Cells(3, x).End(xlDown)).Select
  9.         iColumn = Range(Cells(3, x), Cells(3, x).End(xlDown)).Count
  10.         Selection.Copy Sheets("2").Cells(4 + y, 1)
  11.         y = y + iColumn
  12.     Next
  13. End Sub
複製代碼

TOP

        靜思自在 : 信心、毅力、勇氣三者具備,則天下沒有做不成的事。
返回列表 上一主題