2014-11-14 3 views
0

다음 매크로를 사용하여 한 시트에서 다른 시트로 행을 이동합니다. 이 부분은 매력처럼 작동합니다. 알아 내려고하는 것은 내 조건부 서식에 영향을 미치지 않고이 작업을 수행하는 방법입니다.서식을 이동하지 않고 셀 기준에 따라 행을 이동하는 Excel 매크로

Sub MoveCompleted() 

    Dim h As Variant 
    Dim endrow As Integer 
    Dim OL As Worksheet, Cmp As Worksheet 

    Set OL = ActiveWorkbook.Sheets("Open_Log") 
    Set Cmp = ActiveWorkbook.Sheets("Completed") 

    endrow = OL.Range("A" & OL.Rows.Count).End(xlUp).Row 

    For h = 2 To endrow 
     If OL.Cells(h, "H").Value = "COMPLETE" Then 
      OL.Cells(h, "H").EntireRow.Cut Destination:=Cmp.Range("A" & Cmp.Rows.Count).End(xlUp).Offset(1) 
     End If 
    Next 
End Sub 

내 서식을 포함하여 게시 할 이미지가 있지만 담당자가 게시하기에 너무 낮습니다.

빠른 예 :

매크로를 실행하기 전에이처럼 보인다 "적용 대상"이전에 이동 행이 어디 격차 (들)을 떠나 =$A$12:$I$63,$A$68:$I$100000

: 매크로를 실행 한 후 =$A$12:$I$100000
것 같습니다 .

+0

dropbox와 같은 공유 사이트에 업로드 된 이미지로 연결되는 링크가 있으면 누군가가 질문에 첨부 할 수 있습니다. – ZAT

+0

TARGET 또는 SOURCE 행에 조건부 서식을 유지하려고합니까? – peege

+0

"Open_Log"의 "Open_Log"에서 서식을 유지하려고하는데 "Open_Log"서식이 다른 것과 달리 "Completed"의 서식을 변경하지 않기를 원합니다. 또한 빠른 응답을 주셔서 감사합니다. – Boyle

답변

0

이동 후 조건부 서식을 다시 설정할 수있는 방법이없는 것 같습니다. (문제는 이전에 몇 번 언급되었습니다).

0

나는 당신이 약간 다른 방식으로 그것에 대해 가면서하려고하는 것을 재검토하고 싶을 것 같습니다.

전체 행을 제거하지 않고 그냥 지울 수 있습니다.

또한 전체 행을 복사하는 대신 루프를 사용하여 각 셀의 값을 매우 쉽게 설정할 수 있습니다. 그러면 셀의 서식이 보존됩니다. 이렇게 할 수있는 다른 방법이있을 것이라고 확신하지만 매크로에서 잘라 붙이기를 녹음하는 대신 간단한 루프를 실행하는 방법을 사람들에게 보여주는 것이 좋습니다.

이미 진행중인 코드에이 코드를 삽입 해보세요.

LastCompletedRow = Sheets("Completed").Range("A" & Rows.Count).End(xlUp).Row 
LastCol = Sheets("Open_Log").Cells(1, Columns.count).End(xlToLeft).Column  'Get the last column on the source. 

    For h = 2 To endrow 
     If OL.Cells(h, "H").Value = "COMPLETE" Then 
      For col = 1 To LastCol 
       Sheets("Completed").Cells(LastCompletedRow, col).Value = Sheets("Open_Log").Cells(h, col).Value 
       Sheets("Open_Log").Cells(h, col).Value = "" 'Clear the original cell you just copied. 
      Next col 
     End If 
    Next 
관련 문제