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