2017-03-03 8 views
0

は私が唯一のヘッダー名を使用して複数の列を選択する必要がある要件を持っており、これはそのための私のコードで、は、ヘッダー名を使用した複数列の選択 - エクセルVBA

colmz = WorksheetFunction.Match("Sheet1", Sheets("Age").Rows(1), 0) 
Nrowz = ActiveSheet.Cells(Rows.Count, colmz).End(xlUp).Row 
Sheets("sheet1").Range(Cells(1, colmz), Cells(Nrowz, colmz)).Select 

colm = WorksheetFunction.Match("Sheet1", Sheets("Gender").Rows(1), 0) 
Sheets("sheet1").Range(Cells(1, colm), Cells(Nrowz, colm)).Select 

を、私はそれらを個別に選択することができました一緒にではありません。レンジ関数内でそれらをどのように使用し、両方の列を一緒に選択するのですか?親切に私にあなたの提案をください。前もって感謝します。

+0

最初のものは – Seb

答えて

1

より良い練習がある場合は親切に、私に知らせて、私のため

Union(Range(Cells(1, colmz), Cells(Nrowz, colmz)), Range(Cells(1, colm), Cells(Nrowz, colm))).Select 

を仕事をしました。わかりやすくするために、2つの領域の範囲を.selectに作成しました。この方法を使用すると、使用するシートも指定できます。あなたは2を使用する場合にのみ、その一つ一つを選択することができます

Dim age_range, gender_range As Range 

colmz = WorksheetFunction.Match("Sheet1", Sheets("Age").Rows(1), 0) 
Nrowz = ActiveSheet.Cells(Rows.Count, colmz).End(xlUp).Row 
colm = WorksheetFunction.Match("Sheet1", Sheets("Gender").Rows(1), 0) 

Set age_range = Sheets("sheet1").Range(Cells(1, colmz), Cells(Nrowz, colmz)) 
Set gender_range = Sheets("sheet1").Range(Cells(1, colm), Cells(Nrowz, colm)) 

Sheets("sheet1").Range(Union(age_range, gender_range).Address).Select 
+0

ありがとうございました!私はあなたの答えを受け入れるだろう – Sid29

0

私は連合の機能を試してみましたが、それはあなたが二つの範囲のUNIONを選択します。この

+0

役に立たないだけでなく、それは別のものに依存になるだろう、「選択」:あなたは一度だけこれをやっているか、あなたはこのコードを複数回繰り返すことになります?その場合、選択したい列は、常にこれらの2つのヘッダー名によって呼び出されているかどうかですか? – Seb

+0

@Seb私はそれを何度も何度も使う必要はありません。私は一度だけ使う必要があります。しかし、まだ、私はまだCLRによって提供された回答と一緒に行くと思います – Sid29

関連する問題