2017-10-26 29 views
0
Sub guessLetter(letterGuess As String) 
    Dim lengthOfSecretWord As Integer 
    lengthOfSecretWord = Len(Secret_word) - 1 
    tempWord = "" 
    Dim letterPosition As Integer 
    For letterPosition = 0 To lengthOfSecretWord 
     If Mid(Secret_word, letterPosition, 1) = letterGuess Then 
      tempWord = tempWord & letterGuess 
     Else 
      tempWord = tempWord & Mid(lblTempWord, letterPosition, 1) 
     End If 
    Next 
    lblTempWord = tempWord 
End Sub 

私はランタイムエラー「5」とラインIFでの問題は、私は、VB6のSecret_word.substr(letterPosition, 1)を宣言してこだわっている最初の私はSecret_word.substr(letterPosition, 1)を書くしようとしたが、それは、私はそれを操作しようとすることはできません持っています実行時エラー5が発生しましたVB6の文字列変数のsubstr

+1

エラー5は、20年前の製品のすべてのエラーコードを暗記していない人には無効なプロシージャコールまたは引数です – Plutonix

+0

考慮すべき点の2つ: 'Option Explicit'を使用し、すべての変数を宣言してください。あなたの問題は、 'For'ループで始まります.1ではなく0で始まります。 –

+2

VB6のすべての合法的なコピーには、完全なオンライン文書が付属しています。エラーコードを調べることができないという言い訳はありません。 – Bob77

答えて

0

VBのMid関数(VBのほとんどのものと同様に)は、0インデックスではなく1インデックスです。

私はあなたが0からLen(String)-1までループする他の言語に精通していると仮定していますが、VBは1からLen(String)にループする方が直感的です。

詳細については、ドキュメントのdescriptionおよびexampleを参照してください。

+0

ええ、それは仕事のおかげです。 –

+0

@hadiprasetyo:うれしいことを聞いてうれしい!私の答えがあなたの質問に満足に答えた場合は、私の答えの近くにあるチェックマークをクリックして、その質問に答えているとマークすることができます。スタックオーバーフローへようこそ!まだ[ヘルプ]と​​[ツアー]ページがない場合は、それらを確認してください。 –

関連する問題