【问题标题】:Selecting Multiple Columns Using Header names - Excel VBA使用标题名称选择多列 - Excel VBA
【发布时间】:2017-03-03 22:48:43
【问题描述】:

我有一个要求,我需要仅使用标题名称选择多个列,这是我的代码,

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

我可以单独选择它们,但不能一起选择。如何在 range 函数中使用它们并同时选择两列。请给我你的建议。提前致谢。

【问题讨论】:

  • 只能一个一个选择,所以如果你使用2个“select”,第一个就没有用了

标签: vba excel


【解决方案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

【讨论】:

    【解决方案2】:

    我尝试了 Union 功能,它确实对我有用

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

    如果有比这更好的做法,请告诉我

    【讨论】:

    • 好吧,这取决于不同的事情:您是只执行一次还是重复此代码多次?如果是这样,您要选择的列是否总是由这两个标题名称调用?
    • @Seb 我不必一次又一次地使用它。我只需要使用一次。但是,我想我仍然会选择 CLR 提供的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 2018-01-03
    相关资源
    最近更新 更多