清除除公式外的所有内容(Microsoft Excel)
Roni希望清除工作表中的所有内容,但可能包含公式的单元格除外。该任务可以手动完成,也可以通过使用宏来完成。
如果要手动进行清除,可以按照以下步骤操作:
。按F5。 Excel将显示“转到”对话框。 (请参见图1。)
。单击特殊按钮。 Excel将显示“转到特殊”对话框。
(请参见图2。)
。选择“常数”单选按钮。然后,“公式”选项下的四个复选框将变为可用。 (这可能有点令人困惑。为什么Microsoft立即使Constants单选按钮控制另一个单选按钮下的某些复选框的原因尚不清楚。)
。确保已选中“公式”单选按钮下的所有复选框。 (默认情况下应选择它们。)
。单击确定。 Excel在工作表中选择所有常量(不包含公式的单元格)。
。按Del键。
如果您只需要偶尔清除工作表的非公式内容,则此方法非常有用。如果您需要更频繁地执行此操作,则只需使用宏记录器来记录上述步骤。或者,如果愿意,可以从头开始创建自己的宏,例如以下代码:
Sub ClearAllButFormulas() Dim wks As Worksheet 'ignore errors in case there is only formulas On Error Resume Next For Each wks In Worksheets wks.Cells.SpecialCells(xlCellTypeConstants).ClearContents Next On Error GoTo 0 Set wks = Nothing End Sub
如果您需要清除整个工作簿中的所有非公式单元格,则此宏特别有用。原因是因为它在整个工作簿中的每个工作表上都进行清除,而无需您手动进行清除。
使用此宏时,应格外小心。在运行此宏之前,请确保您确实要清除所有内容,但工作表或工作簿中包含公式的单元格除外。意外删除您真正需要保留的单元格的内容将是可耻的。如果您对这种可能性不太满意,则可能需要使用以下版本的宏:
Sub ClearAllButFormulas2() Dim wks As Worksheet Dim sTemp As String Dim iCheck As Integer sTemp = "This macro deletes everything in the current " sTemp = sTemp & "workbook except formulas. Once done, " sTemp = sTemp & "it cannot be undone." & vbCrLf & vbCrLf sTemp = sTemp & "Are you sure you want to continue?" iCheck = MsgBox(sTemp, vbYesNo + vbExclamation, "Warning!") If iCheck = vbYes Then 'ignore errors in case there is only formulas On Error Resume Next For Each wks In Worksheets wks.Cells.SpecialCells(xlCellTypeConstants).ClearContents Next On Error GoTo 0 Else MsgBox "Operation cancelled." End If End Sub
此版本显示一个消息框,询问您是否确定要清除。结果是,您不太可能偶然弄乱您的工作簿。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(9097)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: