Robert想要一个宏,该宏查找数据表中所有值为零的单元格实例,然后删除这些单元格。他想知道如何去做。

出于本技巧的目的,我将假设罗伯特实际上是想清除单元格中的值,而不是实际上删除单元格。

此外,我将假定他不想只隐藏零值,这可以通过在Excel中进行简单的设置更改轻松完成。

(其他_ExcelTips_中介绍了如何执行此操作。)

实际上,您有几种方法可以摆脱零值。一种方法甚至不使用宏,而是依靠Excel的“查找和替换”功能:

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

。单击选项按钮以展开对话框。 (请参见图1。)

。在“查找内容”框中,输入0。 。确保“替换为”框为空。

。选中“匹配整个单元格内容”复选框。

。单击全部替换以执行替换。

您甚至可以根据需要将以上步骤转换为简短的小宏:

Sub ReplaceZeros()

Cells.Replace What:="0", Replacement:="", _       LookAt:=xlWhole, SearchOrder:=xlByRows End Sub

这种方法的完成方式受到限制,最值得注意的是,它将仅替换实际包含0值的单元格。它不会替换解析为0的公式。例如,如果一个单元格包含公式= 4-4(解析为0),则“查找和替换”操作将忽略它,因为该单元格中实际上没有0值。

如果您想要某种东西实际上可以清除包含0或解析为0的单元格,那么您将需要另一种宏方法。这是一个好例子:

Sub DeleteZeroes()

Dim rCell As Range

For Each rCell In Selection         If rCell.Value = 0 Then             rCell.ClearContents         End If     Next End Sub

若要使用宏,只需选择要影响的单元格,然后运行宏。

||||查找每个选定的单元格并删除包含0值的任何单元格的内容-在这种情况下,该单元格还包含任何可解析为0的公式。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。

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

本提示(13437)适用于Microsoft Excel 2007、2010、2013和2016。