2017-04-20 2 views
0

여러 행으로 변환해야하는 데이터가 들어있는 셀 행이 있습니다.Excel VBA : 행을 여러 행으로 분할

18 4 ~ 17 11시 0분 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

이 한 행의 반 (8 개 다리있다). 공백은 셀 간의 구분을 나타냅니다.

각 "SkyFlyer_Leg *"는 새 줄로 가져 가려면 carrage return이 필요합니다.

이 줄은 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) - 4 월 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 시트에 직접 복사하여 복사합니다. 그래서 이미 열에 있다면 마지막 행의 루프를 실행하여 필요한 데이터를 복사하고 필요한 행 수를 삽입 한 다음 데이터를 복사 한 다음 한 행을 위로 이동하십시오 – pascalb

+0

문제는 루프 반복 방법을 모르는 것입니다 마지막 줄. 이 코드를 아십니까? – JKRH

관련 문제