2014-06-12 45 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

我看你复制的行(虽然它是整行,而不仅仅是'答: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