2016-06-16 12 views
-1

シート1の「配送用のドケット」から値をコピーしたい。私がコピーしたいセルは、A18:A160の空でないすべてのセルからのものになります。空でないセルをすべてコピーし、別のワークシートの次の使用可能なセルに貼り付ける方法

次のステップでは、空でないセルの値をSheet2 "Shipping register"に貼り付けます。この値はセルA2から始まり、セルが空でない場合は下に移動します。私は以前に友人に私にこれを作ってもらうように頼んだのですが、ループと+1機能を追加することを覚えています。なぜならセルには次のセルに移動しなければならない値があるからです。

enter image description here

+1

は、より具体的にしてください(読み(http://stackoverflow.com/help/how-to-ask)[依頼する方法]) –

+0

Iを私は本当にそれを説明するのに問題がありますが、私はベストを尽くすつもりです。私と一緒に忍耐してください。 –

答えて

0

これを試してみてください:

Private Sub copyNon_EmptyCells() 
    Dim ws1 As Worksheet, ws2 As Worksheet 
    Dim vals() As String, valCount As Integer 
    Dim lastRow As Integer, r As Integer 

    Set ws1 = Sheets(1) 
    Set ws2 = Sheets(2) 

    ' set last row variable 
    lastRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row 

    For r = 18 To lastRow 
     If (Not ws1.Cells(r, 1) = vbNullString) Then 
      ReDim Preserve vals(valCount) 
      vals(valCount) = ws1.Cells(r, 1) 
      valCount = valCount + 1 
     End If 
    Next r 

    For r = 0 To valCount - 1 
     ws2.Cells(r + 2, 2) = vals(r) 
    Next r 

End Sub 
+0

私は本当にそれを説明するのが難しいですが、私はベストを尽くすつもりです。私と一緒に忍耐してください。私が達成したいのは、sheet1の値をコピーすることです。コピーしたいセルがA18:A160から空白のセルでない場合、次のステップは空でないセルの値をSheet2に貼り付けます。 "Shipping registerこれはセルA2から開始し、セルが空でない場合は下に移動します。私は以前に友人に私にこれを作ってもらうように頼んだのですが、ループと+1機能を追加することを覚えています。セルには次のセルに移動する必要があるたびに –

+0

コードがあります。 "sheet2 B2 going down" – lonestorm

+0

シートを名前で参照するには、Set ws1 = Sheets( "Delivery Docket")などを使用します。Forループは、 "Next"コマンドはカウンタ値を1だけ増分する(またはステップ引数を使用する場合は指定された値)ので、 "+1"(Doループで必要となる)が必要です。 – lonestorm

関連する問題