Excel - VBA - 在单元格内搜索特定值
问题描述:
是否可以在列中搜索特定值?Excel - VBA - 在单元格内搜索特定值
我希望能够搜索列“B”中的所有单元格,并在其中查找“单词”“feas”(不区分大小写)。我还有其他的一切,只需要知道这是否可行或如何完成。
我当前的代码如下所示:
Sub PriorityAIMS()
ActiveSheet.Name = "Raw Data"
Dim ws As Worksheet
Set ws = Sheets("Raw Data")
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Sheets.Add(After:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws1.Name = "FEAS"
ws.Activate
Row = 2
Dim i As Integer
For i = 1 To 1500
If (Cells(i, 2).Value = (HAS FEAS IN IT) Then 'This is the part that i'm struggling with
Copied = ws.Range(Cells(i, 1), Cells(i, 17)).Value 'If possible, this would cut and paste so it deleted the original
ws1.Activate
ws1.Range(Cells(Row, 1), Cells(Row, 17)).Value = Copied
Row = Row + 1
ws.Activate
End If
Next i
End Sub
编辑:只是为了澄清,在B列的值将永远只是“FEAS”。这将是一个完整的句子,但如果它包含“french”,那么我希望IF函数能够工作。
答
Find
和FindNext
很好地工作(并很快!)
'...
Dim copyRange As Range
Dim firstAddress As String
Set copyRange = ws.Range("B1:B1500").Find("feas", , , xlPart)
If Not copyRange Is Nothing Then
firstAddress = copyRange.Address
Do
ws2.Range(Cells(Row, 1), Cells(Row, 17)).Value = Intersect(copyRange.EntireRow, ws.Columns("A:Q")).Value
Row = Row + 1
Set copyRange = Range("B1:B1500").FindNext(copyRange)
Loop While copyRange.Address <> firstAddress
End If
'...
查找到INSTR() –
查找到'Find'(不是看每个单元更快)。 Feas是西班牙文字吗? –