使用宏清除工作表的内容,而不清除剪贴板

时间:2012-07-30 18:42:39

标签: excel excel-vba clipboard vba

如何使用宏清除Excel工作表的内容,而不清除剪贴板的内容?

我目前正在使用下面的代码(通过单击工作表上的按钮来调用),但是这会清除剪贴板中的数据,我从其他来源复制了这些数据,并希望粘贴到已清除的工作表中

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

1 个答案:

答案 0 :(得分: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