Excelのバリアントを指定した範囲に貼り付けるときに問題があります。私は以下のコードを持っていますが、[E1:E15]
の出力は全範囲で0です。私が見たいと思っているのは、15までです。VBA - バリエーションの値を貼り付け
この特定の問題の解決策を見つけることができませんでした(この問題がExcel用語として定義されていることが分かりませんでした)。 VBAでこの特定のコードまたはこれを完了するためのより自然な方法のための任意の助けは非常に感謝しています。ありがとう!
Sub TEST()
Dim SIZE As Integer
SIZE = 15
Dim VECTOR() As Integer
ReDim VECTOR(SIZE)
Dim i
For i = 1 To SIZE
VECTOR(i) = i
Next i
[E1:E15].Value = VECTOR
End Sub
それ '[E1:E15]'の表記が有効かもしれないが、それは暗黙的にアクティブなブック内のアクティブなワークシートを参照することです。あなたはそれについてもっと明示し、 'ActiveSheet.Range(" E1:E15 ").Value'を代入することができます。ワークシートを後でパラメータ化する方がずっと簡単です。言うまでもなく、一般的に遭遇する表記ではないので、コードを維持する人に少しでも "WTF"の瞬間を惜しまないかもしれません。 –
作成した配列は実際には1D配列であり、必要な2D型のRow型またはColumn型ではありません。 – PaulG