2015-11-04 38 views
0

我有一個帶有兩個工作表的Sheet1和Sheet2的Excel文件。 Sheet 1具有商店信息,而Sheet 2具有商店數量信息根據單元格值有條件地清除連續的單元格區域內容

在Sheet 1中,範圍「A1:A5」列出了5個商店名稱,Store A到Store E,而Sheet 1中的範圍「B1:B5」是一個允許用戶從下列選項中選擇的下拉框:「打開」,「關閉」或「」。

在表2中,有一個表格按商店列出了產品的數量。喜歡的東西:

enter image description here

我正在尋找一種方法來清除範圍B的內容:F Sheet 2中,當在Sheet1中的各店鋪未設置爲「打開」。

目前,我從工作表Sheet1聯在B列中的值,以G列在Sheet2中,並讓代碼設置爲在Sheet2中的以下內容:

Private Sub Worksheet_Activate() 
If Range("G2") <> "Open" Then 
Range("B2:F2").ClearContents 
End If 

我怎樣才能在一個循環中執行此,而不是複製這段代碼五次單獨的時間?

+0

你可能不需要VBA,如果說準備接受「混合到背景」* clear *。 – pnuts

回答

0

這樣的事情?

For i = 2 To 6 'This is the starting row (2) to the ending row (6) 
    If Range("G" & i) <> "Open" Then 'We use i to dynamically build the range as a string 
     Range("B" & i & ":F" & i).ClearContents 
    End If 
Next i 
+0

謝謝,這看起來應該起作用。我在另一個答案中看到類似於此的東西,但沒有評論,因此並沒有完全理解代碼的作用。我會盡快嘗試並提供並更新。謝謝! – Venetian

+0

另外,If語句可以引用Sheet1上的Column B而不是Sheet2上的Column G嗎?換句話說,就像Sheet1.Range(「A」&i)? – Venetian

+0

更改您的參考,例如:Range(「Sheet2!G」&i)' –

相關問題