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的较早菜单界面找到此技巧的版本: