[英]Excel VBA - If cell begins with “find” then return value of a different cell
我有一個包含很多行的電子表格。 我想搜索N列中的每個單元格。如果該單元格以“ find”開頭(希望它不區分大小寫),則返回A列中的值(同一行)。 例。 如果N2以“查找”或“查找”或“查找”(或任何其他變體)開頭,則返回A2。 工作表是“ Master”,我希望它可以在其他工作表上運行。 我的Excel版本是2013。
下面將把A中的值打印到立即窗口。
Sub returnA()
With Sheets("Master")
For Each cell In .Range("N2:" & .Range("N2").End(xlDown).Address)
If UCase(Left(cell.Value, 4)) = "FIND" Then
Debug.Print .Cells(cell.Row, 1).Value
End If
Next
End With
End Sub
在任何情況下,都將以'find'開頭返回所有行的A列中的值。 編輯 :已更新,以便它在Sheet1的N列中查找值,並將A列的結果粘貼到Sheet2的A列。
Sub Find()
Dim rFoundAddress As Range
Dim sFirstAddress As String
Dim x As Long
x = 1
With ThisWorkbook.Worksheets("Sheet1").Columns(14)
Set rFoundAddress = .Find("find*", LookIn:=xlValues, LookAt:=xlWhole)
If Not rFoundAddress Is Nothing Then
sFirstAddress = rFoundAddress.Address
Do
ThisWorkbook.Worksheets("Sheet2").Cells(x, 1) = .Cells(rFoundAddress.Row, 1)
x = x + 1
Set rFoundAddress = .FindNext(rFoundAddress)
Loop While Not rFoundAddress Is Nothing And _
rFoundAddress.Address <> sFirstAddress
End If
End With
End Sub
它將找到與這些匹配:
但找不到與以下項匹配的項:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.