2016-12-16 6 views
0

以下は、範囲内の値を別のシートにコピーするための私のコードです。しかし、値をコピーして貼り付けたので、貼り付けた最新の値域を常に削除するマクロを作成するにはどうすればいいですか?VBAマクロを使用してコピーを貼り付けた範囲内のレイト値を削除するにはどうすればよいですか?

(または可能な場合、どのように私は私が削除したい値のどの範囲を選択することができますマクロを作成するのですか?)

ところで、("bookmark")がシートにE6:P6からの値の範囲であるI値をコピーしています。

誰かが私にこれを手伝ってもらえるか本当に感謝します。

Sub AddBookmark() 

    Worksheets("Dashboard").Range("Bookmark").Copy 

    Worksheets("Bookmarks").Cells(Rows.Count, "A").End(xlUp).Offset(4, 0).PasteSpecial Paste:=xlPasteValues 
    Worksheets("Bookmarks").Cells(Rows.Count, "A").End(xlUp).Offset(-18, 0).PasteSpecial Paste:=xlPasteFormats 

    Application.CutCopyMode = False 

End Sub 

答えて

0

あなたBookmark範囲の大きさは、あなたの現在のコードは、4行以前に書き込まれた行の下の行の列A:Lに書き込んでいる12列(すなわちE6:P6)によって1行がある場合。したがって、作成した最新のエントリを削除するには、列Aの最後の空でないセルをWorksheets("Bookmarks")にして、その行の列A:Lを削除するだけです。

ので

Sub DeleteBookmark() 
    With Worksheets("Bookmarks") 
     .Range("A" & .Rows.Count).End(xlUp).Resize(1, 12).Clear 
    End With 
End Sub 

P.S.上記のコードでは、参照しているワークシートの資格はRows.Countです。既存のコードではそうしていないので、特定の状況でエラーが発生する可能性があります。あなたのコードは、例えば、

Worksheets("Bookmarks").Cells(Worksheets("Bookmarks").Rows.Count, "A").End(xlUp).Offset(4, 0).PasteSpecial Paste:=xlPasteValues 

P.P.S.を使用する必要があります私はあなたのコードがPasteFormatsを実行するときに-18行で最後のセルをオフセットしている理由はわかりません。それは意図的なのでしょうか?

+0

おかげで助けてくれてありがとう!それは動作しますが、最新の行だけが削除されます。変更して最新の19行を削除するにはどうすればよいですか? –

+0

「AddBookmark」マクロを実行するたびにE6:P6(つまり、1行×11列)を「ブックマーク」ワークシートにコピーするだけです。 'DeleteBookmark'マクロで19行を削除したいのはなぜですか? (FWIW - '.Range(" A "と.Count).End(xlUp).Offset(-18、0).Resize(19、12).Clear'はそれを行いますが、 **なぜあなたはそれをしたいのですか?) – YowE3K

関連する問題