2017-01-24 7 views
0

私はいくつかのリストが保存されている隠れたワークシート( "データ")を介してコンボボックスのリストを設定しています。.Activateなしの隠しシート上のデータの範囲の選択

以下のように私は現在、範囲を選択します。しかし、これは明らかに隠されたシート「データ」を活性化し

Dim arr() As Variant 

Worksheets("Data").Activate 

arr = Range("D2", Range("D2").End(xlDown).End(xlToRight)) 

cboBox.List = arr 

。どのように非表示のシートを選択/表示せずに同じ範囲を選択できますか?

私はシートをアクティブにすることを避けるために...

arr = Sheets("Data").Range("D2", Range("D2").End(xlDown).End(xlToRight)) 

...の変異体を使用してみましたが、それは動作しません。

「D2」の範囲をxlDownとxlToRightの2度と呼ぶのと同じだと思いますが、正しい構文が必要なのは解決できません。

多くのありがとうございます。

EDIT:YowE3Kの提案が働いた:

arr = Sheets("Data").Range("D2", Sheets("Data").Range("D2").End(xlDown).End(xlToRight))

+0

あなたバリアントを、それを行うことができます**ほとんど** Range( "D2"、Sheets( "Data")、Range( "D2"))を使用すると、 .End(xlDown).End(xlToRight)) '、@ SJRの答えに従って' With'ブロックを使って書く方が簡単です。 – YowE3K

答えて

2

あなたは

arr = Worksheets("Data").Range("D2").currentregion 

にそれを短くするか、これ

with Worksheets("Data") 
    arr = .Range("D2", .Range("D2").End(xlDown).End(xlToRight)) 
end with 
+0

ありがとうございます。私はそれを考えなかったとは思っていません...私はそれをさらにコードの中で行っています... –

関連する問題