2013-12-17 185 views
0

這是我在這裏的第一篇文章,另外我也完全沒有關於VBA的任何知識......所以請原諒我的無知; - )Excel 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

Range("BOQ")是指第一張紙上的範圍。 所以無論哪個選擇單頁紙,宏會影響表1

該範圍要使代碼靈活,你是在紙張,可以考慮將其更改爲類似:

Activesheet.Range("A2:A10")

相關問題