0

これは MsgBox で機能しますが、割り当てステートメントのコメントを外すと、タイプの不一致エラーが発生します。配列 MyArr に格納したい D1 から始まる不明な長さの文字列があります。

Dim MyArr As Variant   
Range("D1").Select
I = 1

While ActiveCell <> Empty
    MsgBox ("this is in the active cell:" & ActiveCell.Value)
'   MyArr(I) = ActiveCell.Value
    I = I + 1
    ActiveCell.Offset(1, 0).Select
Wend
4

1 に答える 1

1

MyArr(I)MyArr が配列として定義されていないため、失敗します。コードを見ると、D1 から最初の空のセルまで見つかったすべての文字列を MyArr に含めたいようです。

Dim MyArr
MyArr=Range("D1", Range("D1").End(xlDown))
If VarType(MyArr)>vbArray then 'more than 1 cell returned
    'D1 is in MyArr(1,1)
    'D2 is in MyArr(2,1)
    '...
    'Lastcell is in MyArr(Ubound(MyArr),1)
Else 'Only one cell found with text
    'D1 is in MyArr 
    'note no () -> one cell = no array
End If
于 2013-05-30T13:35:44.243 に答える