2016-11-04 15 views
0

フリーズしています。私は公に宣言された範囲(dataIrradianceRangedataTempRange)を設定しようとしていますが、オブジェクトのエラーのメソッドの範囲を取得し続けます。誰が私が間違っているのか教えてもらえますか?名前付きシートを使用した範囲の設定

Public Sub getData() 

'for each loop in data book to find right columns for sites 
'each site has two columns in the data book...irradiance and amb temp 
For j = 2 To siteCount * 2 Step 2 
    If dataSheet.Cells(1, j).Value = siteNameArray(i) Then 

     Set dataIrradianceRange = dataSheet.Range(Cells(5, j), Cells(lastRow, j)) 
     Set dataTempRange = dataSheet.Range(Cells(5, j + 1), Cells(lastRow, j + 1)) 
     Exit For 
    End If 
Next j 

End Sub 

答えて

1

だから、これは動作しますが、それは私が試したものをかけない理由を私は理解していないフルレンジの資格

With dataSheet 
     Set dataIrradianceRange = .Range(.Cells(5, j), .Cells(lastRow, j)) 
     Set dataTempRange = .Range(.Cells(5, j + 1), .Cells(lastRow, j + 1) 
    End With 
+0

で試してみてください。あなたはそれを説明できますか? – Rivers31334

+1

明示的なワークシートの資格を持たない 'Range'参照は、' dataSheet.Range(Cells(5、j)、Cells(lastRow、j)) 'の' datasheet.Range '部分は、' datasheet'が以前に設定されたワークシート内の範囲を参照し、 'Cells(5、j)、Cells(lastRow、j)'部分は_active_ワークシートの範囲を指します。 'With datasheet - End With'ブロックの中で、ドット( '.')で始まるすべての範囲参照は、暗黙的にそれらの親オブジェクトとして' datasheet'を仮定します – user3598756

関連する問題