2017-04-20 17 views
0

複数の行に変換する必要のあるデータが含まれているセルの行があります。Excel VBA:行を複数の行に分割する

18年04月17 11時○○分30秒SkyFlyer1_Leg1 319437.222 146279.951 -32.768 SkyFlyer1_Leg2 319417.07 146268.105 -32.768 SkyFlyer1_Leg3 319410.548 146268.368 -32.768

これは、1つのライン(8脚が存在する)の半分です。スペースは、細胞間の区切りを示す。

各「SkyFlyer_Leg *」は、改行するためにカーレッジリターンが必要です。

これらの行は、CSVから構文解析している別のスクリプトを使用してワークシートに取り込まれています。

Option Explicit 

Sub CSVParser_99() 

Dim i As Long 
Dim x As Long 
Dim LastRow As Long 
Dim PasteRow As Long 

    With Sheets("CSV Paste") 
     LastRow = .Range("A3").End(xlDown).Row 
     For i = 3 To LastRow 
      PasteRow = Sheets("Working Sheet 1").Cells(Sheets("Working Sheet 1").Rows.Count, "A").End(xlUp).Row 
     .Range(.Range("A" & i), .Range("A" & i).End(xlToRight)).Copy Destination:=Sheets("Working Sheet 1").Range("A" & PasteRow + 1) 

     Call RowDiv 

    Next i 
End With 

End Sub 

Sub RowDiv() 

Dim Row1 As Variant 

With Sheets("Working Sheet 1") 
    .Range("C6000").End(xlUp).Select 
End With 

With Row1.ActiveCell 

End With 

End Sub 

これは、私は、このページにコードをもたらしスクリプトを含む、これまで持っているものです。 (これまでに助けをシャイラドーのおかげで)

私が望む結果は、データは以下のように配置されています:

18年04月17 | 11:00:30

SkyFlyer1_Leg1 | 319437.222 | 146279.951 | -32.768

SkyFlyer1_Leg2 | 319417.070 | 146268.105 | -32.768

SkyFlyer1_Leg3 | 319410.548 | 146268.368 | -32.768

ご協力いただければ幸いです。乾杯、J

答えて

0

は多分これは助けを

 
Sub CSVParser_99() 

    Dim i As Long 
    Dim x As Long 
    Dim LastRow As Long 
    Dim PasteRow As Long 

     With Sheets("CSV Paste") 
      LastRow = .Range("A3").End(xlDown).Row 
      For i = 3 To LastRow 
       PasteRow = Sheets("Working Sheet 1").Cells(Sheets("Working Sheet 1").Rows.Count, "A").End(xlUp).Row 
      .Range(.Range("A" & i), .Range("A" & i).End(xlToRight)).Copy Destination:=Sheets("Working Sheet 1").Range("A" & PasteRow + 1) 

      Call RowDiv 

     Next i 
    End With 

End Sub 

 

Sub RowDiv() 

    Dim Row1 As Range 

    With Sheets("Working Sheet 1") 
     Set Row1 = .Range("A6000").End(xlUp) 
    End With 

    With Row1 

     .TextToColumns Destination:=ActiveCell, DataType:=xlDelimited, _ 
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _ 
      Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _ 
      :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _ 
      Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _ 
      ), Array(14, 1)), TrailingMinusNumbers:=True 
    End With 

End Sub 

+0

こんにちは、おかげで動作しますが、これはまったく何もしていないようです。私はデータが既に列に分離されているので、TextToColumn関数は機能しないと思います。私はcarrige returnを必要とします。乾杯J – JKRH

+0

カラムセパレータは言及していないので、データをExcelシートに直接コピーしてコピーします。したがって、既に列に入っている場合は、最後の行からループし、必要なデータをコピーし、必要な行数を挿入してデータをコピーしてから、1行上に移動します – pascalb

+0

問題は、最後の行あなたはこれのコードを知っていますか? – JKRH

関連する問題