2017-03-03 45 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