2014-02-13 14 views
-1

我看無論是通過宏或VBA具有以下結構轉換爲Excel的Excel將列/行與行

1 | X | X | X | X | X 
2 | Y | Y |  
3 | Y | Y | 
4 | X | X | X | X | X 
5 | Y | Y |  
6 | Y | Y |   

我需要將其更改爲以下格式

1 | X | X | X | X | Y | Y | Y | Y | 
2 | X | X | X | X | Y | Y | Y | Y | 

將需要循環下來的Excel文件,並做到多列/行。

任何建議我會怎麼做?

由於

+0

一個例子可能不足以傳達您的要求,是否有任何佈局變化的規則? – pnuts

回答

0

如果格式是完全一樣在您的示例示出並且將不會改變,並且位於表1的單元格A1開始:從比其他任何空片

Sub doFormatData() 
Dim shtIn As Worksheet 
Dim shtOut As Worksheet 
Dim rIn As Long 
Dim rOut As Long 
Dim c As Long 

Set shtIn = Sheets("Sheet1") 
Set shtOut = ActiveSheet 
rIn = 1 
rOut = 1 

Do 
    For c = 1 To 4 
     shtOut.Cells(rOut, c).Value = shtIn.Cells(rIn, c).Value 
    Next c 
    For c = 5 To 6 
     shtOut.Cells(rOut, c).Value = shtIn.Cells(rIn + 1, c - 4).Value 
    Next c 
    For c = 7 To 8 
     shtOut.Cells(rOut, c).Value = shtIn.Cells(rIn + 2, c - 6).Value 
    Next c 

    rIn = rIn + 3 
    rOut = rOut + 1 
Loop Until shtIn.Cells(rIn, 1).Value = "" 
End Sub 

運行它工作表Sheet1。第一個包含數據的單元格將爲A1。

+0

可能值得一提的是,你認爲它是每一行中最後一個被刪除的'X'。 – pnuts

+0

不,它比這更糟....我完全錯過了原始數據集包含5個「X」值的事實。 –

+0

但是OP *似乎*只想要其中的四個 - 並沒有指定哪一個,所以我會說你的A代表正確。 – pnuts