4
    myArray = Array("A", "B", "C", "D", "E")

    Call someSub(myArray)

...

    Sub someSub(ByRef myArray() as String) 'Error here
       'contents here
    End Sub

その 2 番目の部分のタイプの不一致エラー -- 何が原因ですか?

4

3 に答える 3

9

Option Explicitひょっとして myArray の type の使用を省略して、指定しなかったのですか? それはバリアントになり、as String実際にタイプの不一致であると言っています。

于 2012-12-06T18:06:14.377 に答える
6

それを理解しました-それをプレーンなバリアントとして渡す必要がありました

Sub someSub(myArray as Variant)
于 2012-12-06T18:07:39.197 に答える
1

実際には、明示的なオプションを使用してから、すべての変数を特定の型として定義する必要があります。この場合:

Option Explicit

Dim myArray(1 to 10) as String 'define the number of elements before you use it.
myArray(1) = 'A'
myArray(2) = 'B'
[etc etc]

少し長くなりますが、タイプセーフであると、コードの実行が速くなり、読みやすくなります。また、遭遇したようなエラーを防ぎます...

于 2012-12-06T18:58:32.037 に答える