这是我在这里的第一篇文章,另外我也完全不了解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倍的问题。
提前致谢。
答案 0 :(得分:0)
Range("BOQ")
指的是第一张纸上的范围。
因此,无论选择哪个工作表,宏都会影响工作表1上的范围。
要使代码对您所使用的工作表更加灵活,请考虑将其更改为:
Activesheet.Range("A2:A10")