2014-04-17 9 views
1

我試圖將參數從一個過程傳遞到另一個過程。一切都看起來不錯,參數已通過,但它符合Select case方案中給出的條件。傳遞的參數與條件不匹配

我在做什麼錯?

程序通過參數:

Private Sub but_next_Click() 

Call zmien_fakture("but_next") 

End Sub 

步驟接收的參數:

Private Sub zmien_fakture(ByVal txt_name As String) 

Select Case txt_name 

    Case txt_name = "but_next" 
     If Lastrow > nr_faktury_dol Then 
      nr_faktury_dol = nr_faktury_dol + 1 

     Else 
      MsgBox ("To jest ostatnia faktura") 

     End If 

    Case txt_name = "but_prev" 
     If nr_faktury_dol <> 1 Then: nr_faktury_dol = nr_faktury_dol - 1 

    Case Else 

End Select 

End Sub 
+0

替換'案例txt_name = but_next'用'案例txt_name = 「but_next」'和刪除:在'If'條件,因爲其單條線檢查 –

+0

@PankajJaju根據您的建議編輯案例=沒有任何變化。不太明白爲什麼我應該刪除'if'條件...如果給定的條件是真實的,如果不是,它會顯示msgbox。如果沒有它,它將如何運作? – lowak

+0

Ahh my bad ...看到simoco的回答...你不需要在case情況下指定變量。 –

回答

2

Case "but_next"與替換Case txt_name = "but_next"。正確的代碼是:

Private Sub zmien_fakture(ByVal txt_name As String) 
    Select Case txt_name 
     Case "but_next" 
      If Lastrow > nr_faktury_dol Then 
       nr_faktury_dol = nr_faktury_dol + 1 
      Else 
       MsgBox ("To jest ostatnia faktura") 
      End If 
     Case "but_prev" 
      If nr_faktury_dol <> 1 Then: nr_faktury_dol = nr_faktury_dol - 1 
     Case Else 
    End Select 
End Sub 

爲什麼你的語法不工作:

當你使用Case txt_name = "but_next",聲明txt_name = "but_next"評估爲TRUEFALSE,你會得到:

Select Case txt_name ' txt_name="but_next", but txt_name<>TRUE and txt_name<>FALSE 
    Case True 
     'do something 
    Case False 
     'do something 
    Case Else 
End Select 

但在Select Case txt_name變量txt_name不是TrueFalse而你實際跳躍到Case Else部分。

另一種方法是改變Select Case txt_nameSelect Case TRUE這樣的:

Private Sub zmien_fakture(ByVal txt_name As String) 
    Select Case True 
     Case txt_name = "but_next" 
      If Lastrow > nr_faktury_dol Then 
       nr_faktury_dol = nr_faktury_dol + 1 
      Else 
       MsgBox ("To jest ostatnia faktura") 
      End If 
     Case txt_name = "but_prev" 
      If nr_faktury_dol <> 1 Then: nr_faktury_dol = nr_faktury_dol - 1 
     Case Else 
    End Select 
End Sub 
+1

它很好用!我到處尋找只是沒有想到,選擇案例語法是wrond。再次謝謝你,你是我的爭論傳球救星:) – lowak