删除包含穿透文本的行(Microsoft Excel)
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。