是否有一个等效于SQL SELECT查询的VBA方法?

时间:2012-03-12 22:16:55

标签: sql excel vba select autofilter

使用Excel工作表,我正在尝试搜索与其单元格值中的某些条件匹配的行。

我需要类似SQL SELECT查询的东西来继续搜索Excel工作表,在VBA中有这样的方法吗?返回与搜索条件匹配的行范围的方法。

我尝试使用Range AutoFilter方法,但我不能将返回的对象用作Range来访问返回行中的单元格。

我是Excel VBA的新用户,如果我的问题看起来很奇怪或很愚蠢,那就很抱歉

2 个答案:

答案 0 :(得分:1)

您可以使用Union()函数创建范围。这是一个简化的例子(假设您想要选择A列中的值为偶数并将其突出显示为黄色的整行):

Sub UnionTest()

Dim myRange As Range
Dim cell As Range

For Each cell In Range("A1:A100")
    If cell Mod 2 = 0 Then
        If myRange Is Nothing Then
            Set myRange = cell
        Else
            Set myRange = Union(myRange, cell)
        End If
    End If
Next

myRange.EntireRow.Interior.Color = vbYellow

End Sub

请注意,在使用union之前需要检查范围是否为空(并对其进行着色,但为了使代码更易于阅读,我在此处省略了它),因此使用If-Then语句。根据您对每一行的要求,在for-each循环期间执行该行的过程可能更有效。

答案 1 :(得分:-1)

Hava看看这些功能

  • VLOOKUP
  • HLOOKUP - 与VLookup相同,但行
  • LOOKUP()
  • INDEX()和MATCH()
  • OFFSET()和MATCH()

How to find data in an Excel table
How to Use VLOOKUP or HLOOKUP to find an exact match

希望这些帮助