2014-06-12 2 views
0

For 루프에서 찾은 데이터를 동일한 시트의 다른 범위에있는 다음 사용 가능한 행에 붙여 넣는 데 문제가 있습니다. 붙여 넣으려고하는 범위는 ("A295 : A324")입니다. 저는 한 장의 시트 ("인쇄물") 만 사용하고 다른 어떤 시트는 사용하지 않습니다. He're 내가 가진 무엇 지금까지VBA 도움말 - For 범위에서 다음 행을 붙여 넣습니다. For

Sub CmpnyWkLoad_autofil() 
     lr = 338 'last row 
     lc = 69  'last column 
     For r = 332 To lr 'start at row 332 
     current = False 
      For c = 60 To lc  'start at column BH 
       If Cells(r, c).Value >= Range("V4").Value Then current = True: Exit For 
      Next c 
      If current Then Columns("A:AG").Rows(r).Copy 
     Next r 
End Sub 

내가 반복하고있어/독서는 미리 채워진 컬럼의 날짜입니다 ("BH : BQ") 그리고 그들은 오늘 날짜 이후에 있다면, 그것은 복사 처음 33 COLS 같은 행에 붙여서 다음 사용 가능한 행 ("A295 : A324")에 붙여 넣습니다. 그런 다음 루프를 끝내기를 계속합니다. 이 작업을 끝내면 도움이 될 것입니다. 주석 내 가정이 맞다면

+0

을 나는 그것이 전체 행뿐 아니라'A의 비록 당신이 (행 복사 참조 : AG'하지만, 나는 당신이 그것을 붙여 넣을 것을 결코 보지 않는다 – tigeravatar

+0

열 열 (BH : BQ)은 모두 날짜가 있습니까? 오늘 날짜를 모두 비교해야합니까? 질문이 명확하지 않습니다. 데이터와 예상 결과를 보여 줄 수 있습니까? – L42

답변

0

이 시도 할 수 있습니다 :

Dim lr As Long, cel As Range 

With Thisworkbook.Sheets("PrintOut") 
    '~~> Check up to where your last row in BH is 
    lr = .Range("BH" & .Rows.Count).End(xlUp).Row '~~> you can also use lr = 338 
    '~~> You said BH row starts at 332 
    For i = 332 To lrow 
     For Each cel In .Range("BH" & i, "BQ" & i) 
      If cel.Value >= .Range("V4").Value Then 
       .Range("A" & cel.Row, "AG" & cel.Row).Copy 
       .Range("A" & .Rows.Count).End(xlUp) _ 
       .Offset(1, 0).PasteSpecial xlPasteValues, , , True 
       Exit For 
      End If 
     Next 
    Next 
End With 

HTH