2016-09-02 3 views
-3

동일한 워크 시트에서 모든 셀 데이터를 압축하려고합니다. 즉 값이있는 모든 셀을 서로 옆에 놓습니다. 떨어져 퍼졌다. 원래 시트는 다음과 같습니다 는 picture 1Excel VBA - 다음 행에 데이터를 가져와 기존 위치에서 제거해야합니다.

원하는 출력은 다음과 같이 될 것이다 : picture 2

나는이 문제를 해결하기 위해 코드를 아래에 노력했다, 미안 그래서 여기에 새로운 모르는거야 질문하는 방법

Sub SelectRangea() 

    Sheets("Sheet1").Select 
    Range("a1:cf1").Select 
    Application.CutCopyMode = False 
    Selection.Copy 


With Sheets("Sheet1") 
    lst = .Range("A" & Rows.Count).End(xlUp).Row + 1 
    .Range("A" & lst).PasteSpecial xlPasteColumnWidths 
    .Range("A" & lst).PasteSpecial xlPasteValues 

End With 

End Sub 
+1

당신은 지금까지 귀하의 시도를 게시 할 수 있습니까? 아직 완벽하게 작동하지 않더라도, 다른 사람들에게 당신이 향하고있는 곳, 그리고 개선되고 개선되어야 할 곳을 알려줍니다. –

+2

이 코드 작성 서비스는 모호한 요구 사항 목록과 선택 언어를 게시하는 곳인 것처럼 보입니다. 일부 코드 원숭이는 코드를 작성하여 코드를 작성합니다. 넌 틀렸어. 기꺼이 도와 드리 겠지만 먼저 문제를 직접 해결하기 위해 노력할 것을 기대합니다. 그렇게하고 어려움에 처했을 때, 발생한 문제를 설명하고, 작성한 코드의 ** 관련 부분 **을 게시하고, 해당 코드와 관련된 ** 특정 질문 **을 요청할 수 있습니다 우리는 당신이 그것을 이해하도록 도와 줄 것입니다. –

답변

0

이 코드는 샘플 데이터에 따라 문제를 해결합니다.

Dim c As Long 

c = 1 
With Worksheets("sheet6") 
    c = .Cells(1, c).End(xlToRight).End(xlToRight).Column 
    Do While c < .Columns.Count 
     With .Range(.Cells(1, c), .Cells(1, c).End(xlToRight)) 
      .Parent.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, .Columns.Count) = .Cells.Value 
      .Clear 
     End With 
     c = .Cells(1, c).End(xlToRight).Column 
    Loop 
End With 

첫 번째 행의 '섬'중 하나가 단일 셀이면 해당 특수 조건을 수용해야합니다.

+0

대단히 감사합니다 :) –