2016-08-30 19 views
2

私のコードに問題があります。コードは、シート "hideMaster"列Bに基づいて最後の行まですべての行をコピーする必要がありますが、このマクロは最初の5行だけをコピーします。Excel VBA - 1つのシートから別のシートにコピーする> 1行のみをコピーする

Sub DeleteFilterAndCopy() 

Dim LASSSST As Long 
Dim IP As Worksheet 

Set IP = ThisWorkbook.Worksheets("Input") 

LASSSST = IP.Cells(Rows.Count, "B").End(xlUp).Rows.Count 

Sheets("MASTER").Cells.clearcontents 
Sheets("hideMASTER").Range("A5:U" & LASSSST).Copy 
Sheets("MASTER").Range("A1").PasteSpecial xlPasteValues 

[...] 

誰かが問題をここで見つけることができますか?

+0

をあなたの 'LASSSST = IP.Cells(Rows.Count、 "B")終了(xlUp).Rows.Count'を変更LASSSST = IP.Cells'に(IP。 .Rows.Count、 "B")。終了(xlUp).Rows.Count ' –

+0

ハイシャイ、答えに感謝:)。しかし、それは同じです。 5行しか貼り付けられません。 – Bluesector

+0

最後の行については**カラムB **をチェックしていますか?この列にすべてのデータが含まれていますか?後であなたは** Column A **からデータをコピーしています。また、シート "Input"のLastRowをチェックしていますが、シート "hideMASTER"から範囲をコピーしていますか? –

答えて

2
LASSSST = IP.Cells(Rows.Count, "B").End(xlUp).Rows.Count 

これはそれだけで一つのセルなので、1である

IP.Cells(Rows.Count, "B").End(xlUp) 

の行数です。しかし、これは、行の数が、それは問題ではないように、すべてのシートに同じである、シャイラドーが示唆したように、それは使用して、"A5:U1"

私はIP.Rows.Count代わりのRows.Countを含ま

IP.Cells(IP.Rows.Count, "B").End(xlUp).Row 

ノートをコピーしていました。しかし、すべてを参照するのはまだ良い習慣です。

2

編集:arcadeprecinctがエラーを発見しました。

代わりにこれを試してみてください:

Sub DeleteFilterAndCopy() 

Dim LASSSST As Long 
Dim IP As Worksheet 

Set IP = ThisWorkbook.Worksheets("Input") 

Sheets("MASTER").Cells.clearcontents 
With ThisWorkbook.Worksheets("hideMASTER") 
    .Range("A5", .Cells(Rows.Count,21).End(xlUp)).Copy Destination:= ThisWorkbook.Worksheets("MASTER").Range("A1") 
End with 
+0

ありがとう!私はこのコードをテストします。私より少し良く見える;) – Bluesector

関連する問題