1

クリップボードの内容をクリアせずに、マクロを使用して Excel シートの内容をクリアするにはどうすればよいですか?

私は現在、以下のコード(シートのボタンをクリックして呼び出される)を使用していますが、これにより、他のソースからコピーしたクリップボードのデータがクリアされ、クリアされたシートに貼り付けられます

Sub clearly()  
    Dim ws As Worksheet  
    For Each ws In ThisWorkbook.Worksheets  
        ws.UsedRange.ClearContents  
    Next ws  
End Sub
4

1 に答える 1

1

他のソースからコピーしたものを、クリアしたシートに貼り付けたい

一時シートを作成してそこにデータを貼り付けてから、すべてのシートをクリアしてみませんか。完了したら、一時シートから関連するシートにデータをコピーし、一時シートを削除しますか?

これを参照してください(試行およびテスト済み

Sub clearly()
    Dim ws As Worksheet, wsTemp As Worksheet

    '~~> Create a Temp Sheet
    Set wsTemp = Sheets.Add

    '~~> Copy clipboad data to temp sheet
    wsTemp.Range("A1").PasteSpecial xlPasteAll

    '~~> Clear contents of all sheets except temp sheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> wsTemp.Name Then ws.Cells.ClearContents
    Next ws

    '~~> Copy data from temp sheet to relevant sheet
    wsTemp.Cells.Copy Sheets("Sheet1").Cells

    '~~> Delete temp sheet
    Application.DisplayAlerts = False
    wsTemp.Delete
    Application.DisplayAlerts = True
End Sub
于 2012-08-10T02:19:22.360 に答える