2014-11-14 1 views
1

VBA를 처음 사용하고 코드가 작동하지 않는다는 점에 대해 질문이 있습니다. 첫째, 긴 이야기 요약 ... 데이터를 A2 셀의 F (Undetermind Row)에 붙여 넣었습니다. 행 1은 변경되지 않은 헤더입니다. 데이터를 붙여 넣은 후 매크로는 셀 G2와 H2를 선택하고 붙여 넣은 데이터의 끝까지 복사합니다. 셀 G2 및 H2에는 IF 수식이 있습니다. 조건이 거짓이면 셀을 비워 둡니다.루프를 사용하여 값을 찾고 특정 세 셀을 다른 워크 시트에 복사

여기 내 매크로 코드가 적용됩니다.

아래 코드는 값 (비 공백)을 찾고 셀 G, C 및 E를 다른 워크 시트에 복사하고 셀 D, B, abd C에 붙여 넣는 열 G를 반복합니다. 코드는 데이터의 첫 번째 줄에서 작동하지만 G 열의 나머지 부분을 루핑하지 않는 것처럼 보입니다. 어떤 도움도 올바르게 작동하면 큰 도움이됩니다.

그리고이 글은 내 헬프 사이트의 첫 번째 게시물이므로이 게시물의 깨진 규칙을 용서해주십시오. 내가 잘못한 것을 알려 주시면 다시하지 않을 것입니다. 감사합니다

Sub XFerData() 

    Dim RowGCnt As Long, CShtRow As Long 

    Dim CellG As Range 

    RowGCnt = 2 
    CShtRow = 4 

    Set CellG = Range("G2:G" & RowGCnt) 

    For Each Cell In CellG.Cells 
     If Range("G" & RowGCnt).Value <> "" Then 
      Worksheets("Plate Kit-Frame").Range("G" & RowGCnt).Copy 
      Worksheets("Cutting Sheet").Range("D" & CShtRow).PasteSpecial xlPasteValues 
      Worksheets("Plate Kit-Frame").Range("C" & RowGCnt).Copy 
      Worksheets("Cutting Sheet").Range("B" & CShtRow).PasteSpecial xlPasteValues 
      Worksheets("Plate Kit-Frame").Range("E" & RowGCnt).Copy 
      Worksheets("Cutting Sheet").Range("C" & CShtRow).PasteSpecial xlPasteValues 
     CShtRow = CShtRow + 1 
     RowGCnt = RowGCnt + 1 
     End If 
    Next 
End Sub 
+0

귀하의'CellG' 범위는 오직 하나 개의 행이 될 것입니다. 'Set CellG ...'행 다음에'MsgBox CellG.Address'를 넣습니다. –

답변

0
Sub XFerData() 

    Dim RowGCnt As Long, CShtRow As Long 
    Dim LastRow As Long 
    Dim CellG As Range 

    CShtRow = 4 
    LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row 

    For RowGCnt = 2 to LastRow 
     If Range("G" & RowGCnt).Value <> "" Then 
      Worksheets("Plate Kit-Frame").Range("G" & RowGCnt).Copy 
      Worksheets("Cutting Sheet").Range("D" & CShtRow).PasteSpecial xlPasteValues 
      Worksheets("Plate Kit-Frame").Range("C" & RowGCnt).Copy 
      Worksheets("Cutting Sheet").Range("B" & CShtRow).PasteSpecial xlPasteValues 
      Worksheets("Plate Kit-Frame").Range("E" & RowGCnt).Copy 
      Worksheets("Cutting Sheet").Range("C" & CShtRow).PasteSpecial xlPasteValues 
     CShtRow = CShtRow + 1 
     End If 
    Next RowGCnt 
End Sub 
+0

당신은 최고입니다! 나는 몇 주 동안 이걸로 싸웠 어. 고마워요! – BLM001

관련 문제