隐藏特定string在单元格中时的行

我在Excel 2007中遇到了VBA问题。当特定的string位于单元格中时,我需要一个macros来隐藏行。 (例如“取消系统PPP”)

我的macros:

Sub HideRows() Dim Cell As Range If InStr(Cell, "cancelled") And Rows(Cell.Row).Hidden = False _ Then Rows(Cell.Row).Hidden = True Next Cell End Sub 

不幸的是,我得到了运行时错误“13”…你能帮助我吗?

这在Excel 2010中有效:

 Sub hide_cancelled() For i = 1 To Rows.Count If InStr(Cells(i, 2).value, "cancelled") And Rows(i).Hidden = False Then Rows(i).Hidden = True End If Next i End Sub 

请注意,这将迭代电子表格中的所有行,无论它们是否包含任何数据或完全为空。 可能还要等一下! 所以,而不是Rows.Count你应该input一个更理智的价值。

此外,这将期望在第2列中的search值。更改此Cells(i,xxx)