[英]VBA Excel: How to check if a value is in a selected range of values (or current cell)
我在一列單元格中有一個參考數據集(它可能是一行,但無論如何)。
我想瀏覽幾個工作表,檢查選定的值范圍,如果當前單元格值在參考數據中,請使用它作為值粘貼到下一個系列單元格的“偏移量”中,直到當前單元格更改為一些參考數據中的新值,此時應針對新值和下一個單元格序列重復粘貼過程。 例如
Sub doStuff()
Dim RefRange As Range, queryRange As Range, checkCell As Rnage
String pasteDate As String
Set RefRange = Range("A1:A50")
Set queryRange = .Selected
For Each checkCell In queryRange
If checkCell.Value IN RefRange <***here's where I don't know what to use ***>
pasteData = checkCell.Value
' Advance to next item
Next
ElseIf checkCell.Value Not In queryRange <***here's where I don't know what to use ***>
ActiveCell.Offset(0,+1).Value = pasteData
End If
Next
End Sub
我知道如何在SQL中執行此操作,VBA中是否有一些類似的方法?
在SQL中:
Select a, b from table where c in ('foo', 'bar', 'baz') OR
Select a, b from table where c in (select e from some_other_table)
TIA
我懷疑是否有必要遍歷所有數據,只需在整個列中使用公式並替換為結果值即可。 像這樣:
Sub Test()
With ActiveSheet.UsedRange.Columns(3).Offset(1)
.Formula = "=IF(ISERROR(MATCH(B2,A:A,0)),"""",B2)"
.Value = .Value
End With
End Sub
上面的代碼查看B列中的所有值以測試A列中的匹配項。 如果找到匹配項,則B列值將顯示在c列中。 如果找不到匹配項,它將顯示一個空白單元格,但是您可以將其更改為所需的任何值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.