Board logo

標題: [發問] 請問如何將一列資料變成三列 [打印本頁]

作者: michael101772    時間: 2013-3-14 23:14     標題: 請問如何將一列資料變成三列

大家好,

  需求說明如下:
  就像檔案中sheet1 的資料變成 sheet2的樣子。
  sheet1的資料共有九欄,想將資料複製到sheet2(實際是要複製到另一個活頁簿),而且每貼三欄後,
  就自動貼到下一列。即1~3欄貼到第一列後,4~6欄貼到第二列,7~9欄貼到第三列~依序貼下去。
  由於儲存格有些有公式,希望貼過去後一併變成值。

  大概知道應該用迴圈的方式寫,不過想不出來,希望版上神人給予建議
  
  感謝
作者: Hsieh    時間: 2013-3-15 00:22

回復 1# michael101772
  1. Sub ex()
  2. Dim ar()
  3. With 工作表1
  4. For Each a In Range([A2], [A2].End(xlDown))
  5.   For i = 0 To 6 Step 3
  6.      ReDim Preserve ar(s)
  7.      ar(s) = Array(a.Offset(, i).Value, a.Offset(, i + 1).Value, a.Offset(, i + 2).Value)
  8.      s = s + 1
  9.   Next
  10. Next
  11. End With
  12. 工作表2.[A2].Resize(s, 3) = Application.Transpose(Application.Transpose(ar))
  13. End Sub
複製代碼

作者: michael101772    時間: 2013-3-15 15:06

回復 2# Hsieh


    感謝版主,測試無誤。
    真是太厲害了。

   可以在請教版主這條程式的涵義嗎?不太懂step 3的作用「 For i = 0 To 6 Step 3 」



     感謝
作者: Hsieh    時間: 2013-3-15 16:59

回復 3# michael101772

迴圈中變數的增量
作者: michael101772    時間: 2013-4-18 18:52

版主大大,

想問若要把排序後的資料放到另一個檔案的sheet的話,要怎麼做?
我試過在程式中加入新增活頁簿並指定到活頁簿,可是他就是無法貼過去。


感恩




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