2012-07-30 213 views
1

如何在不清除剪貼板的內容的情況下使用宏清除Excel表格的內容?使用宏清除WorkSheet的內容而不清除剪貼板

我目前使用下面的代碼(通過單擊表單上的按鈕調用),但是這會清除剪貼板中的數據,我從其他源複製了剪貼板中的數據,並且要粘貼在已清除的工作表中

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

回答

1

我從其他來源的清表複製,並希望

爲什麼不創建一個臨時表和數據粘貼進去,然後清除所有S heets。完成後,將數據從臨時表複製到相關表並刪除臨時表?

看到這個(久經考驗

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