2016-07-28 10 views
0

特定の列のヘッダーを除くすべての行を選択するためにさまざまな方法と回答を試みましたが、動作していないようです。別のワークシートのヘッダー以外の列のすべての行を選択

私が使用して試した(15は、ここでは列です):

Range(Cells(2, 15), Cells(.Cells(rows.Count, 15).End(xlUp).Row, 15)).Select 

私はすべてを選択するために、異なる文でのワークシート上.Activateを使用するように管理しますが、これはシートを変更し、あなたは目に見えて見ることができますすべての行が選択されています。これは私が必要なものに対しては不可能です。ユーザーは常にシートの束を前に切り替えることはできませんが、悪い経験になります。

.Activateを使用せずにヘッダー(最初の)行の後に空白でない列をすべて選択するにはどうすればよいですか?

これらの値を取得し、配列に入れ、現在のセルの値が配列内にあるかどうかを確認する必要があります。この部分を求めるのではなく、重要であればそれを文脈として提供する。

+0

それは動的な2次元配列 –

+0

にデータを入れますが、私は以下の答えを参照あなたはすべてが空白の列をスキップ選択したい「どのように私は非空白の列の全てを選択することができます」。空でない行をすべて意味しますか?ヘッダー行以外のリストのすべての行を意味しますか? –

+0

@fluffy_muffinあなたはそれらを選択したいですか?または値を配列に保存しますか?私の答えでコードをテストしましたか? –

答えて

0

非アクティブなワークシートで範囲を選択することはできません。

ヘッダー行以外の列のすべてのセルへの参照を設定する方法は次のとおりです。

Dim TargetRange As Range 

With Worksheets("Sheet1") 

    Set TargetRange = .Range(.Cells(2, 15), .Cells(Rows.Count, 15).End(xlUp)) 

End With 
0

次のコードは、(SelectまたはActivateを使用せずに)ワークシートからデータを読み取り、2次元配列にします。

Option Explicit 

Sub Range_WO_Headers() 

Dim Sht_Source    As Worksheet 
Dim Rng      As Range 
Dim LastRow     As Long 
Dim LastCol     As Long 
Dim Rng_Array    As Variant 

' modify Sheet1 according to your sheet name 
Set Sht_Source = ActiveWorkbook.Worksheets("Sheet1") 

' assuming the table's data starts from Cell A1 
LastRow = Sht_Source.Cells(Sht_Source.Rows.Count, "A").End(xlUp).Row 
LastCol = Sht_Source.Cells(1, Sht_Source.Columns.Count).End(xlToLeft).Column 

' resize array according to number of columns and number of rows 
ReDim Rng_Array(0 To LastRow, 0 To LastCol) 

' set dynamic array from Cell A1 to last row and last column found (starting the second row) 
Set Rng = Sht_Source.Range(Cells(2, 1), Cells(LastRow, LastCol)) 

Rng_Array = Application.Transpose(Rng) 

End Sub 
関連する問題