2017-08-10 65 views
1

我有數據,如下面的圖片:Excel中的數據來排

enter image description here

我需要(與宏)排列數據,以便與多家每一行高程\方位角後第一行,就像圖片中:

enter image description here

我有很多像這樣的數據行。也許任何人都可以幫忙?

+0

這可以在VBA做容易,如果你知道如何編寫宏,然後寫一個循環來再檢查一遍柱一種'Elevation'嵌套循環移動數據拳頭行,因爲你需要。讓我們知道你是否卡在某個地方,你會幫助你。 – Shrikant

+0

即時通訊不擅長自己寫宏,我可以做一些更正,爲我的情況工作宏:)所以,如果你可以給我一些宏代碼基本我會弄清楚:) @Shirikant –

+0

有多少條記錄你喜歡'Elevation'並且是固定到9個單元的數據/ – Shrikant

回答

2

這不是測試。你可以試試看。下面的內容也可以用不同的方式寫入。

Sub test1() 
     Dim LastRow, DataCount, temp As Double 
     i = 1 
     LastRow = 1 

     Do While LastRow <> 0 
      Range("A" & i).Select 
      If ActiveCell.Value = "ELEVATION\AZIMUTH" Then 
       'Cut all three row and paste 
       DataCount = Application.WorksheetFunction.CountA(Range(i & ":" & i)) 
       Range("A" & ActiveCell.Row + 1, "I" & ActiveCell.Row + 1).Cut ActiveCell.Offset(0, DataCount) 
       Range("A" & ActiveCell.Row + 2, "I" & ActiveCell.Row + 2).Cut ActiveCell.Offset(0, DataCount * 2) 
       Range("A" & ActiveCell.Row + 3, "I" & ActiveCell.Row + 3).Cut ActiveCell.Offset(0, DataCount * 3) 
      Else 
       LastRow = Application.WorksheetFunction.CountA(Range("A" & i, "A" & i + 10)) 
      End If 
      i = i + 1 
     Loop 

    End Sub 
+0

,您可以在數據未固定到列「I」時進行偏移。就像這樣'Range(「A」&ActiveCell.Row + 1,activecell.offset(1,datacount)' – Shrikant

+0

它不工作,我不知道什麼是不正確的。它只是想着(紡紗輪)我知道如何說正確的,我按Esc停止:)然後我可以看到「選擇」或對象「範圍」失敗,然後按degug它; s顯示此:範圍(「A」和我)。選擇。 @Shrikant –

+0

對不起,我忘了把一行代碼。我=我+ 1 – Shrikant

2

這也可以在不使用宏的情況下完成。 我假設你最後一列的數據在那裏是列I,而行數是11.你想填滿第I行後面第11行的所有單元格,即J11,K11 ....值正好低於I11

你可以在J11做到這一點,貼 J11 = INDEX($ I $ 11:$ I $ 1000,COLUMN(B1),1) 整行拖動公式,你應該得到你想要的輸出

+0

它只用一列值排,我需要所有列值在一行:)但是,謝謝,我是一個很好的公式,我相信我可以使用它一天:) @ user8441712 –

+1

你的意思是說從說, B12到I50應該完全在那裏?這可以通過= INDEX($ B $ 12:$ I $ 1000,ROUNDDOWN((COLUMN(B1)-2)/ 7,0)+ 1,MOD(COLUMN(B1)-2,7)+1)完成。我假設你的數據有7列。因此,索引中的行號會在每7個單元格後附加1,並且列索引從1到7進行迭代,隨着從單元格移動到單元格 – harinp715