2016-05-09 7 views
1

ユーザーアカウントが特定の文字列と等しいかどうかを評価しようとしています。たとえば、ユーザーアカウントがAMTESTまたはPMTESTの場合、ifステートメントでコードを実行しません。以下のコードを使用すると、「入力文字列が正しい形式ではありません」というエラーが表示されます。文字列比較時に入力文字列が正しい形式でない

構文に問題がありますか?

あなたはこの構文を使用する必要が
If UserAccount <> "AMTEST" Or "PMTEST" Or "TESTUSER" Then 
    ' do something 
End If 

答えて

4

If UserAccount <> "AMTEST" AndAlso UserAccount <> "PMTEST" AndAlso UserAccount <> "TESTUSER" Then 

End If 

読み、維持するために簡単には、このアプローチのようになります。

Dim testAccs = { "AMTEST", "PMTEST", "TESTUSER" } 
If Not testAccs.Contains(UserAccount) Then 

End If 
+0

は今、私はエラーが出るが、それはまだ実行されているいくつかの理由ではありません、ありがとうUserAccount = "AMTEST"のif文でコードを実行しないでください。 – user1342164

+0

@ user1342164:あなたのコメントを投稿する前に自分の答えを編集したことに注意してください。スペースやその他の目に見えない文字がないこと、あるいはAMTESTではなくAmtestであることは確かですか? –

+0

今すぐご利用いただきありがとうございます。 – user1342164

1

あなたは文のすべての部分を評価する必要があります。あなたが書いたのは、基本的に「UserAccountの値が 'AMTEST'でないか、文字列 'PMTEST' = true、または 'TESTUSER' = true」の場合です。

これを行う正しい方法は次のとおりです。書き込みに

If UserAccount <> "AMTEST" Or UserAccount <> "PMTEST" Or UserAccount <> "TESTUSER" Then 
    Excecute code 
END if 

もう一つの方法は非常に頻繁に使用される同等のようになりません!=の代わりに、<>

+0

これは実際にOPの後に何が達成されるかはわかりませんが、あなたは@Tim Schmenlterが提案する 'AndAlso'を – OSKM

+0

以上にする必要があります**書き込みの別の方法はそれほど頻繁には使われません!これは[VB.net](https://msdn.microsoft.com/en-us/library/215yacb6.aspx)、[C#ではない(https://msdn.microsoft.com/en-us/)ライブラリ/ 3tz250sf.aspx) – djv

関連する問題