根据另一列中的字符串从列中获取值,并从结果中返回唯一列表

时间:2014-04-04 20:52:12

标签: excel vba excel-vba

我有一个表格,其中有两列我感兴趣。我想要做的是在第一列中查找字符串,但保存范围内第二列的字符串。我也希望这些值是独一无二的。

我在考虑循环整个第一列,但考虑到我有超过20000行,我想知道是否有更好的方法会自动找到值并将它们保存为范围。

以下是我的表格外观的示例:

enter image description here

所以我想要的是,当列A具有值AAA时,将列D中的所有字符串保存为范围。我知道我可以使用高级过滤器轻松完成此操作,但我想在VBA中完成。

由于

1 个答案:

答案 0 :(得分:1)

使用类似的东西:

Sub FilterRange(WS As Worksheet, FieldIndex As Long, CriteriaStr As String)
    WS.AutoFilterMode = False
    Set Rng = WS.UsedRange
    Rng.AutoFilter FieldIndex, CriteriaStr, Operator:=xlFilterValues, VisibleDropDown:=False
End Sub

这样称呼:

Sub Test()

    Dim WS As Worksheet: Set WS = ThisWorkbook.Sheets("Sheet3") 'Modify as necessary.
    Dim ColOfCondition As Long
    ColOfCondition = Application.Match("HeaderA", WS.Rows(1), 0)
    FilterRange WS, ColOfCondition, "AAA"

End Sub

给出这样的结果:

enter image description here

如果有帮助,请告诉我们。