2014-10-27 137 views
-1
Public Function Test(y As Double) 
Select Case y 
Case y = 0   //problem starts here 
Test= "No value"  // problem ends here 

Case Else 
s = 0 
For i = 1 To 3 
s = s + 20/y 
Next 
Test= s 
End Select 
End Function 

當y = 0時,我得到的結果是「#Value!」這裏有什麼問題。當y不是0時,一切正常。Excel VBA Case不起作用

+0

爲了完整起見,您還可以使用'Case Is = 0'等語法。 – barryleajo 2014-10-27 18:50:04

回答

1

您正確使用的情況下,你不應該說y=0只是說case 0case "0"

else部分作品,因爲每一個值包括0到同樣的情況。

Public Function Test(y As Double) 
    Select Case y 
    Case "0"   // This is the correct way to use it  
     Test= "No value"  

    Case Else 
     s = 0 
     For i = 1 To 3 
     s = s + 20/y 
     Next 
     Test= s 
    End Select 
End Function 
0
Public Function test(y As Double) 
    Select Case y 
     Case 0 
      test = "doesnt exist" 

     Case Else 
      s=0 
      For i = 1 To 10 
      s=y/(i^1) 
      Next 
      test = s 

    End Select 
End Function 

您使用=你的情況檢查這是不對的。你應該把它作爲

Case testValue 
    Do something here 

如果是那麼一個字符串把它放在引號

Case "Hello World" 
    do something here 
0

你會想

Case 0 

而不是

Case y = 0 

你如果y有一個代碼,代碼將只執行後者(True/False)的值。