2017-03-02 9 views
0

数字のある行を別のワークシートにコピーしようとしています。別のフォーラムからSpecialCellsコードを取得しましたが、別のシートにデータを貼り付ける際に問題があります。ご協力ありがとうございました!ここで別のシートの次の空の行に特殊セルをコピーします

は、私が持っているコードです:

Sub Sample() 

Dim ws As Worksheet 
Dim rng As Range 
Dim ws1 As Worksheet 

On Error GoTo Whoa 

Set ws = Sheets("3") 
Set ws1 = Sheets("Sheet1") 

With ws 
    Set rng = .Cells.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow 

    Copy ws1.Range("A" & lastrow) 
End With 

Exit Sub 
End sub 
+0

どこペーストはありますか?あなたの 'Whoa'エラーハンドラはどこですか? 'lastrow'はどこに定義/宣言されていますか? – BruceWayne

+0

@BruceWayne彼らはペーストアクションを見逃していない、彼らは 'コピー'の前に来るべき 'rng.'が欠けている:)コピーコマンドの後の引数は、宛先ですので' rng.Copy ws1 .Range( "A"&lastrow) '。あなたの他のポイントは立つ。 – Wolfie

答えて

1

あなたはこれを試みることができる:

Sub Sample() 
    With Sheets("Sheet1") 
     Sheets("3").UsedRange.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow.Copy .Cells(.Rows.Count, 1).End(xlUp).Offset(1) 
    End With 
End sub 
+0

これは動作します!どうもありがとうございます!! :) – Snflq

+0

あなたは歓迎です – user3598756

+0

私は空のセルではないデータの行をコピーするために同じコードを使用しようとしました。私は "SpecialCells(xlCellTypeConstants、xlNumbers)"セクションを削除しましたが、式はもはや機能しません。 2回目にマクロを実行すると、新しいデータは、次に使用可能な行の代わりに2番目のデータが埋め込まれた行にコピーされます。 – Snflq

0

私はドン; tはあなたが定義されて、あなたのコード内でanywehreを参照してlastrowを設定します。

にあなたの最後のセクションを変更します。

With ws 
    Set Rng = .Cells.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow 

    lastrow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row + 1 ' <-- get the last row in column A '<-- just in case you are looking for the first empty row in Column A 
    Rng.Copy ws1.Range("A" & lastrow) '<-- you need to add the Rng.Copy 
End With 
0

コードbelow.Thisは「シート1」に「3」という名前のシートからデータをコピーします試してみてください。

Sub Sample() 

Dim ws As Worksheet 
Dim rng As Range 
Dim ws1 As Worksheet 

Set ws = Sheets("3") 
Set ws1 = Sheets("Sheet1") 
LastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row 

Set rng = ws.Cells.SpecialCells(xlCellTypeConstants, xlNumbers).EntireRow 
rng.Copy 
ws1.Activate 
Range("A" & LastRow + 1).Select 
ActiveSheet.Paste 

End Sub 
+0

これは、ありがとうございます:) – Snflq

関連する問題