2017-03-15 7 views
2

選択したセルの範囲の値を持つ配列を作成しようとしています。

ActiveSheet.Range("$F$3:$F$100").Select 
varGetArrayAll = Selection 

しかし、それは唯一の最初のセルF3を持つ配列を作成します。私はこれまでのところ、次のされている何

誰かが私を助けることができれば幸いです。

+0

varGetArrayAll = ActiveSheet.Range( "$ F $ 3:$ F $ 100")。値 –

答えて

2

あなたは下の行で同じように、Application.Transposeを使用し、その後、1-D配列に範囲を取得したい場合:

varGetArrayAll = Application.Transpose(ActiveSheet.Range("$F$3:$F$100").Value) 

しかし、あなたはActiveSheetに頼るべきではありません、あなたは完全にあなたを修飾する必要があります

' replace "Sheet1" with your sheet's name 
varGetArrayAll = Application.Transpose(Worksheets("Sheet1").Range("$F$3:$F$100").Value) 
+0

私の日を保存しました。ありがとうございました。完璧に動作します! –

1

このようにそれを試してみてください:

Public Sub TestMe() 

    Dim vargetArrayAll As Range 'or as Variant, to look like your code. 
    Dim counter   As Long 

    Set vargetArrayAll = Selection 

    For counter = 1 To vargetArrayAll.Count 
     Debug.Print vargetArrayAll(counter) 
    Next counter 

End Sub 
ワークシートと Rangeは、それが以下のコードのように、です

したがって、値を範囲として設定し、その要素が配列であるかのようにアクセスできます。ただし、0ではなく、1で始まります。