Excel 資料處理技巧

image

先以上圖為例,來說明這次要解決的問題是什麼?

首先,若是純粹以上圖來看,它只不過是將上面的橫向資料 D1, D2, D3, D4,轉置成下面的縱向資料呈現。
若是這樣,只要將這一筆資料加以轉置,就可以完成。

現在,將問題加以擴大:

  • 資料筆數繁多
  • 需要轉置的資料區塊,長度不一。

image

這種情形,該如何處理,而且希望處理的動作,不要太慢!

解決方案:(想當然爾,程式處理才是上上策!!)

程式使用到的技巧:

  • 插入空白行
  • 資料轉置貼上(選擇性貼上/轉置),資料複製來源不可以和貼上的位置重疊
  • 資料的刪除

    Dim srcRow As Long
    Dim srcCol As Long
    Dim intCnt As Integer
    Dim strLoc As String
   
    srcRow = ActiveCell().Row
    srcCol = ActiveCell().Column
    intCnt = 5
    strLoc = "D"
   
    Rows(srcRow + 1 & ":" & srcRow + intCnt - 1).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove         '插入空白行

    Range(Chr(Asc(strLoc) + 1) & srcRow & ":" & Chr(Asc(strLoc) + intCnt - 1) & srcRow).Select   ‘選定資料
    Selection.Copy                                        ‘複製
    Range(strLoc & srcRow + 1).Select           ‘移位到指定位置
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True     '資料轉置貼上
    Range(Chr(Asc(strLoc) + 1) & srcRow & ":" & Chr(Asc(strLoc) + intCnt - 1) & srcRow).Select         '資料刪除
    Selection.ClearContents
   
    Range(strLoc & srcRow + intCnt).Select    ‘移位到指定位置

沒有留言: