使用Excel工作表,我試圖搜索與其單元格值中的某些條件匹配的行。是否存在與SQL SELECT查詢等效的VBA方法?
我需要像SQL SELECT查詢來繼續通過Excel工作表進行搜索,是否有這樣的方法在VBA?一種返回符合搜索條件的行數範圍的方法。
我已經嘗試過使用Range AutoFilter方法,但是我不能使用返回的對象作爲Range來訪問返回行中的單元格。
我真的很新的到Excel VBA很抱歉,如果我的問題看起來很奇怪或愚蠢
使用Excel工作表,我試圖搜索與其單元格值中的某些條件匹配的行。是否存在與SQL SELECT查詢等效的VBA方法?
我需要像SQL SELECT查詢來繼續通過Excel工作表進行搜索,是否有這樣的方法在VBA?一種返回符合搜索條件的行數範圍的方法。
我已經嘗試過使用Range AutoFilter方法,但是我不能使用返回的對象作爲Range來訪問返回行中的單元格。
我真的很新的到Excel VBA很抱歉,如果我的問題看起來很奇怪或愚蠢
哈瓦一起來看看這些funcitons
How to find data in an Excel table
How to Use VLOOKUP or HLOOKUP to find an exact match
希望這些幫助
可以使用聯盟()函數來創建一個範圍。下面是一個簡單的例子(比如你想選擇整個行,其中在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循環中執行該行的過程可能會更有效。
在VBA中沒有直接的等價物。您可以直接針對Excel工作表運行SQL查詢,但返回的是ADO記錄集而不是一系列匹配的行。但是,如果您的行具有唯一的ID,則可以從記錄集映射回行。如果你使用自動過濾器,那麼不匹配的行將被隱藏,你應該能夠相當容易地獲得剩餘的行。 – 2012-03-12 22:37:29
搜索多列範圍內的內容,或者查詢相應字段中的查詢?高級過濾器允許您按照標準完成這種類型的查詢。 – datatoo 2012-03-12 23:52:45
@Walidix:你總是可以使用ADO來查詢電子表格...正如上面的評論者所說,它會返回一個ADO記錄集,但是你可以很容易地找到一種方法來操作那個集合,但是你需要。 – Kittoes0124 2012-03-13 03:07:04