配列を関数に渡した後、配列に問題があります。基本的には、いくつかの既知の値に対してチェックしたい一連の文字列を含む配列を渡しています。私が試してこれを行うと、私は不一致のエラーが発生します。渡された配列の不一致
私はmsgboxの問題を診断しようとしましたが、コードボックスを実行するときにメッセージボックスがポップアップし、文字列が配列内に表示されるようになってしまいました。 OKをクリックすると、正しい情報が表示されたにもかかわらず、msgboxコマンドで不一致のエラーが発生しているようです。誰が私にミスマッチがあるのか教えてもらえますか?
エラー:
コード:条件が初めて成立した
Public Function A2LConvert(ByRef Software As Variant) As Variant
For i = 0 To 6
MsgBox (Software(i))
If Software(i) = "A" Then 'Or "A1" Then
A2LConvert(i) = "A.txt"
ElseIf Software(i) = "C" Then
A2LConvert(i) = "C.txt"
ElseIf Software(i) = "B" Then
A2LConvert(i) = "B.txt"
ElseIf Software(i) = "D" Then
A2LConvert(i) = "D.txt"
ElseIf Software(i) = "E" Then
A2LConvert(i) = "E.txt"
ElseIf Software(i) = "F" Then
A2LConvert(i) = "F.txt"
ElseIf Software(i) = "G" Then
A2LConvert(i) = "G.txt"
Else
A2LConvert(i) = ""
End If
Next i
End Function
:あなたが欲しい(と思う)という
挙動が仲介配列(tempAr)を実装することによって達成することができますか? –
あなたがしようとしていることは本当に不明です。私の推測では、渡された配列の値を直接置き換えたいということですが、新しい値( 'x.txt')で関数を呼び出しています。も意味ない。その時点で、 'software'は' variant'として宣言されていますので、あなたの関数は何かを受け入れます(常にバリアントを扱う理由は悪いハビットです)。論理全体が間違っているように見えますが、セマンティックは良くありません。すべての 'elseif'の代わりに' select case'を使うべきです。達成したいことを明確に記述し、適切なコードを提供します。 –
また、適切なMS Office製品でご質問ください:ExcelまたはAcccesまたはその他 –