2014-04-17 3 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

= "but_next"케이스 txt_name'와'케이스 txt_name = but_next'를 교체'제거 : If' 조건 '에서의 한 줄 때문에

다른 방법은 다음과 같이 Select Case TRUESelect Case txt_name을 변경하는 것입니다 –

+0

@PankajJaju 조언대로 수정 사례 = 아무 것도 변경되지 않았습니다. 왜'if' 조건을 제거해야하는지 이해할 수 없습니다 ... 주어진 조건이 참이면 msgbox가 표시되지 않으면 어떻게 될까요? 그것 없이는 어떻게 작동할까요? – lowak

+0

Ahh my bad ... simoco의 답변을 참조하십시오 ... 조건에 변수를 지정할 필요가 없습니다. –

답변

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"TRUE 또는 FALSE로 평가하고 당신이 얻을 : 올바른 코드가

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_nameTrue 또는 False이 아니며 실제로 점프합니다. Case Else 부분.

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

관련 문제