Tara经常收到包含单个工作表的工作簿,其中工作表中的某些信息包含“删除线”文本(该文本使用删除线设置格式)。包含删除线文本的行需要删除,但是Tara不确定如何快速解决此问题。

如果您只需要偶尔执行一次此任务,那么以下步骤将很容易地帮助您了解哪些单元格包含删除线格式:

。单击要选择的第一行的左侧-第一行包含删除线文本。整个行应被选中。

。在要删除的任何其他行的左侧单击时,请按住Ctrl键。 (您正在构建要删除的行的选择集。)

。按Ctrl +-(减号键)。这些行将被删除。

如果要查看包含删除线文本的所有行不是那么容易,则可以依靠“查找”功能为您找到它们:

。按Ctrl + F。 Excel将显示“查找和替换”对话框的“查找”选项卡。

。单击选项按钮以展开对话框中的可用内容。

。确保“查找内容”框为空,然后将插入点放置在该框中。

。单击格式按钮。 Excel将显示“查找格式”对话框。

。确保“字体”选项卡可见。 (默认情况下可能会显示它。)

。单击删除线复选框一两次,直到您看到它被选中。 (您无需在对话框中进行任何其他更改。)

。单击“确定”关闭“查找格式”对话框。

。单击全部查找。展开查找和替换对话框以显示哪些单元格包含删除线格式,并选择第一个结果(在对话框中)。

。按Ctrl + A。这将选择对话框中的所有结果。

。单击关闭以关闭“查找格式”对话框。现在应选择所有包含删除线文本的单元格。 (不要单击工作表中的其他任何位置,否则您会无意中取消选择单元格。)

。按Ctrl +-(减号键)。 Excel将显示“删除”对话框。

。单击整个行单选按钮。

。单击确定。这些行将被删除。

这种方法有一个缺点-找不到包含混合格式的任何单元格。换句话说,如果单元格中只有一些文本使用删除线属性,则在步骤8中将找不到该单元格。

可以通过使用宏来克服此缺陷。另外,如果您需要经常执行此任务,则宏是一种不错的方法。这是可以解决问题的方法:

Sub DeleteSTRows()

Dim c As Range     Dim bCheck As Boolean     Dim J As Integer     Dim iRows As Integer

iRows = Selection.Rows.Count     If iRows > 2 Then         For J = iRows To 1 Step -1             bCheck = False             For Each c In Selection.Rows(J).Cells                 bCheck = IsNull(c.Font.Strikethrough)

If Not bCheck Then bCheck = c.Font.Strikethrough                 If bCheck Then Exit For             Next c             If bCheck Then Selection.Rows(J).EntireRow.Delete         Next J     End If End Sub

若要使用宏,只需选择要影响的单元格,然后运行它。宏逐步浏览选择的每一行(从最后一行到第一行),然后检查这些行中的每个单元格。如果单元格包含删除线文本,则将设置标志(bCheck),并删除整行。 (如果您的选择仅包含1或2行,则该宏将不起作用-很少有行很容易手动检查和调整。)

请注意在宏的中间,使用IsNull函数。这是检测单元格是否包含混合格式的部分。如果单元格中只有某些字符使用删除线,则Strikethrough属性将返回空值。这由IsNull检查,并分配给bCheck变量。如果bCheck仍然为False(表示单元格中没有混合使用删除线),则将检查整个单元格以查看其是否具有必需的格式。

应该注意的是,如果您不希望宏实际删除行,而只想清除它们,则可以用.Clear方法替换宏中的.Delete方法。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(5270)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。