2017-03-22 5 views
0

列「L」の数量を報告する数式を持つ名前付き範囲「数量」(ワークシート1、セルI21:L28)があります。私は、値> 0の列Lを検索し、それらの値を(K列のデータと共に)別のワークシート(Sheet10)に貼り付けたいと思います。 次のコードは閉じますが、値ではなく数式を貼り付けます。 助けてください。VBAを名前付き範囲から別のワークシートに貼り付ける条件に基づいてコピーする

Sub CopyOnCondition() 
    Dim sh1 As Worksheet, sh2 As Worksheet, c As Range 
    Set sh1 = Sheet1 'Edit sheet name 
    Set sh2 = Sheet10 'Edit sheet name 
    With sh1 
     For Each c In .Range("L18:L24") 
      If c.Value > 0 Then 
       c.Copy sh2.Cells(Rows.Count, 1).End(xlUp)(2, 1) 
      End If 
     Next 
    End With 
End Sub 

答えて

0

をお試しください:L時に列Lの値> 0

Sub CopyOnCondition() 

    Dim sh1 As Worksheet, sh2 As Worksheet, c As Range 
    Set sh1 = Sheet1 'Edit sheet name 
    Set sh2 = Sheet10 'Edit sheet name 

    With sh1 
     For Each c In .Range("L18:L24") 
      If c.Value > 0 Then 
       c.Offset(, -1).Resize(1, 2).Copy '<-- copy column K with L 
       ' paste values to the first empty row in Column A of sh2 
       sh2.Cells(sh2.Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlValues 
      End If 
     Next c 
    End With 

End Sub 
+0

AWESOME!魅力のように動作します。ありがとうございました –

1

以下のコードは、列のみKから値をコピーします。この

Sub CopyOnCondition() 
    Dim sh1 As Worksheet, sh2 As Worksheet, c As Range 
    Set sh1 = Sheet1 'Edit sheet name 
    Set sh2 = Sheet10 'Edit sheet name 
    With sh1 
     For Each c In .Range("L18:L24") 
      If c.Value > 0 Then 
       sh2.Cells(Rows.Count, 1).End(xlUp)(2, 1).resize(,2).value=c.offset(,-1).resize(,2).value 
      End If 
     Next 
    End With 
End Sub 
+1

あなた 'sh2.Cells( Rows.Count、1) 'は完全修飾されていないので、' sh2'を除いた 'Rows.Count'は' ActiveSheet'を探しています。また、POは列K:Lから値をコピーしたいので、コードは列Kの値のみをコピーします。 –

+0

@ShaiRado - それを指摘してくれてありがとうございます。 – SJR

+0

これも機能しました。そして私は結果の違いを知ることができません。あなたがた両方に感謝します。 –

関連する問題