Excel VBA代码(分配给按钮),用于根据多个工作表中的单元格值隐藏/取消隐藏行

时间:2013-12-17 09:56:52

标签: vba hide

这是我在这里的第一篇文章,另外我也完全不了解VBA ......所以请原谅我的无知; - )

我正在处理一个有数量列的价目表。相同的文件有多个具有多种货币的工作表。我需要实现的是在每个工作表上创建两个按钮来隐藏/取消隐藏数量单元格等于零的所有行。

因此,例如,您要从列表中选择某些项目,因此您将数量输入到适当的单元格(数量列),然后按下按钮以隐藏数量等于零的所有其他行。

现在,我已经在某个地方找到了这个代码,但它只能在第一张纸上工作,当我用按钮复制工作表(创建另一种货币)并按下按钮时它仍将应用更改(隐藏/取消隐藏行到第一张表格。此代码如下:

Public Sub HideRows()
Dim cell As Range

For Each cell In Range("BOQ")

cell.EntireRow.Hidden = (cell.Value = 0 And cell.Value <> "")
Next cell
End Sub

并取消隐藏:

Public Sub UnhideRows()
Dim cell As Range

For Each cell In Range("BOQ")

If (cell.Value = 0 And cell.Value <> "") Then cell.EntireRow.Hidden = False
Next cell
End Sub

如果有人能够在多张纸上单独提出一个合适的脚本,我将非常感激。另外,为了避免在打印预览后脚本运行速度慢100倍的问题。

提前致谢。

1 个答案:

答案 0 :(得分:0)

Range("BOQ")指的是第一张纸上的范围。 因此,无论选择哪个工作表,宏都会影响工作表1上的范围。

要使代码对您所使用的工作表更加灵活,请考虑将其更改为:

Activesheet.Range("A2:A10")