2013-02-21 68 views
1

我試圖隱藏自動隱藏我的Excel 2010電子表格中的某些行,這是基於在特定字段中輸入的值。我正在使用數據驗證來設置0到50之間的最小和最大數字。如果它是0,則隱藏下3行,但如果它是任何其他數字,則顯示行。If-else VBA語句在Excel2010中自動隱藏行

下面是工作的VBA代碼,除了我必須把每個可能的數字。是否可以使用IF Else聲明?如果0則隱藏,否則顯示行

If Target.Address(False, False) = "B45" Then 

    Select Case Target.Value 

     Case "0": Rows("46:48").Hidden = True 

     Case "1": Rows("46:48").Hidden = False 

     Case "2": Rows("460:48").Hidden = False 

     Case "3": Rows("46:48").Hidden = False 

     Case "4": Rows("46:48").Hidden = False 

     Case "5": Rows("46:48").Hidden = False 

     Case "6": Rows("46:48").Hidden = False 

     Case "7": Rows("46:48").Hidden = False 

     Case "8": Rows("46:48").Hidden = False 

     Case "9": Rows("46:48").Hidden = False 

     Case "10": Rows("46:48").Hidden = False 

    End Select 

    Else: Rows("46:48").Hidden = False 

End If 

謝謝!

回答

1

你不只是使用:

Case Else 
Rows("46:48").Hidden = False 

然後這說什麼不符合第一種情況(0)的只是默認爲這個。

對不起,如果我誤解了。

+0

謝謝。我錯誤地把它放在那裏,當我嘗試了一些東西時忘了把它拿出來。 – Mark 2013-02-21 15:05:42

+0

哦,我明白你現在想達到的目的,對不起,Ripster的回答很好。 – Thomas 2013-02-21 15:08:22

+0

哦。抱歉。我將它更改爲下面,它不起作用: 如果Target.Address(False,False)=「B57」Then Select Case Target.Value Case「0」:Row(「58:60」)。Hidden = True Case Else 行(「58:60」)。隱藏= False End If – Mark 2013-02-21 15:16:33

1

而不是使用選擇案例的你可以試試:

If Target.Address(False, False) = "B45" Then 
    If Target.Value > 0 And Target.Value <= 10 Then 
     Rows("46:48").Hidden = False 
    Else 
     Rows("46:48").Hidden = True 
    End If 
Else 
    Rows("46:48").Hidden = False 
End If 
+0

我現在有一個新問題...因爲我這樣做了多次,第二個if-else正在影響第一個自動隱藏 如果Target.Address(False,False)=「B45」那麼 如果Target.Value> 0且Target.Value <= 50然後 行( 「46:48」)。隱藏=假 否則 行( 「46:48」)。隱藏=真 完 其他 行(「46:48」)。如果Target.Value> 0且Target.Value <= 50 Then 行(「50:52」)。隱藏= False 其他 行(「50:52」)。隱藏= True End If Else 行(「50:52」)。隱藏=假 End If – Mark 2013-02-21 15:12:11