2017-03-03 46 views
0

我有,我需要選擇僅使用頭名多列,這是我的代碼的要求,選擇多列使用頭名稱 - Excel的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

您只能選擇一個接一個,所以如果你使用2「選擇」,第一個將成爲無用 – Seb

回答

1

要選擇兩個範圍的UNION一個更好的做法。爲了清楚起見,我已將這兩個區域的範圍創建爲.select。使用此方法可以讓您指定要使用的工作表。

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(Range(Cells(1, colmz), Cells(Nrowz, colmz)), Range(Cells(1, colm), Cells(Nrowz, colm))).Select 

請讓我知道,如果有比這

+0

以及這取決於不同的事情:你只有一次這樣做,否則你會重複此代碼多次?如果是這樣,那麼您想要選擇的列是否總是由這兩個標題名稱調用? – Seb

+0

@Seb我不必一次又一次地使用它。我只需要使用它們一次。但仍然,我想我仍然會選擇由CLR – Sid29