6

配列の値に、別のワークブックの名前付き範囲のセルを入力する必要があります。これまでのところ、私が持っているものはうまくいきません:

Dim vArray() as Variant
vArray = Workbooks("Book2").Worksheets("Sheet1").Range("myRange")

Debug.Print vArray(1) 'yields error

また、運が悪い:

vArray = Workbooks("Book2").Names("myRange")

また

vArray = Workbooks("Book2").Names("myRange").RefersToRange
4

2 に答える 2

7

印刷行を次のように変更してみてください。

Debug.Print vArray(1, 1)

それらをループする方法は次のとおりです。

Sub Test()
  Dim vArray() As Variant
  vArray = Range("myRange")

  Dim i As Long
  For i = LBound(vArray, 1) To UBound(vArray, 1)
    Debug.Print vArray(i, 1)
  Next
End Sub

*編集*

アクティブ化せずに「Book2」を使用するには、次のようにします。

Sub Test()
  Dim vArray() As Variant
  Dim rng As Range
  Dim wbk As Workbook

  Set wbk = Excel.Application.Workbooks("Book2.xls")
  Set rng = wbk.Worksheets("Sheet1").Range("myRange")
  vArray = rng

  Dim i As Long
  For i = LBound(vArray, 1) To UBound(vArray, 1)
     Debug.Print vArray(i, 1)
  Next
 End Sub

別の本から book2 を開くには、行 5 を次のように変更します。

Set wbk = Excel.Application.Workbooks.Open("C:\Users\myname\Desktop\Book2.xls")
于 2013-09-26T21:38:26.770 に答える
4

もう1つの方法..テスト済み

Sub Test()
Dim vArray As Range
Dim rng As Range

  With ActiveSheet
  Set vArray = .Range("myRange")
  For Each rng In vArray
  Debug.Print rng.Value
  Next rng
  End With

End Sub
于 2013-09-27T01:35:19.710 に答える