Board logo

標題: [發問] 資料格式轉換問題 [打印本頁]

作者: imzues    時間: 2011-12-12 11:08     標題: 資料格式轉換問題

想請教各位大大
有沒有什麼方法
可以將附檔中sheet1資料轉成sheet2的格式
[attach]8789[/attach]
作者: kimbal    時間: 2011-12-12 13:36

本帖最後由 kimbal 於 2011-12-12 13:38 編輯

簡單的話用公式就可以了
B2:
=TRUNC(((ROW()-2)/5)+1)
C2:
=OFFSET(Sheet1!$B$1,Sheet2!B2,2*MOD(ROW()-2,5))
D3:
=OFFSET(Sheet1!$C$1,Sheet2!B2,2*MOD(ROW()-2,5))
然後B2: D3往下抄即可
作者: imzues    時間: 2011-12-12 16:07

再請教一個問題,
若是我的資料像sheet1一樣,並非固定的筆數
那有B2的部份有辦法可以克服嗎?
[attach]8792[/attach]
作者: Hsieh    時間: 2011-12-12 17:48

本帖最後由 Hsieh 於 2011-12-13 11:31 編輯
  1. Sub ex()
  2. Dim Ar()
  3. With Sheet1
  4. For j = 2 To .[A2].End(xlDown).Row '從第2列開始到資料結束的列位作迴圈
  5.    For i = 2 To .Cells(j, 1).End(xlToRight).Column Step 2   '從第2欄開始向右到該列資料結束欄位,每次迴圈向右加2欄
  6.       ReDim Preserve Ar(s)  '擴充動態陣列大小
  7.       Ar(s) = Array(.Cells(j, 1).Value, "'" & .Cells(j, i).Text, .Cells(j, i + 1).Value)  '寫入動態陣列
  8.       s = s + 1 '等待下一次擴充陣列大小
  9.     Next
  10. Next
  11. End With
  12.     Sheet2.[B2].Resize(s, 3) = Application.Transpose(Application.Transpose(Ar)) '將陣列寫入工作表
  13. End Sub
複製代碼
回復 3# imzues
作者: imzues    時間: 2011-12-13 10:33

回復 4# Hsieh


    感謝大大
      我的問題解決了,但有些部份看不太懂
      可以稍微講解指導一下嗎?




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