如何使用宏清除excel工作表的内容,而不清除剪贴板的内容?
我目前正在使用下面的代码(通过单击工作表上的一个按钮来调用),但是这会清除剪贴板中的数据,这些数据是我从其他来源复制的,并且希望粘贴到已清除的工作表中。
Sub clearly()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.UsedRange.ClearContents
Next ws
End Sub发布于 2012-08-10 02:19:22
我已从其他来源复制,并希望粘贴到已清除的工作表中。
为什么不创建一个临时工作表并将数据粘贴到那里,然后清除所有工作表。完成后,将数据从临时工作表复制到相关工作表并删除该临时工作表?
参见此(试用并测试了)
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 Subhttps://stackoverflow.com/questions/11727620
复制相似问题