如何找到某个字符串,然后获取该字符串并在vba的其他单元格中搜索它?

如何找到某个字符串,然后获取该字符串并在vba的其他单元格中搜索它?,vba,excel,Vba,Excel,如何找到一个特定的字符串,然后复制该字符串,在另一个单元格中搜索该字符串,然后如果在另一个单元格中找到正确的字符串,则转到相应的单元格,将其复制并粘贴到另一个单元格中?当我使用Instr时,我不断地得到一个错误,然后是另一个Instr。任何建议都可以。如果你看到了附件,那么基本上我要做的是首先在michale中找到H,然后复制michale并在一列中搜索它,一旦我在一列中找到它,我就转到相应的列并复制Pick me*粘贴到工作表中的任何位置 Sub ex_find()

如何找到一个特定的字符串,然后复制该字符串,在另一个单元格中搜索该字符串,然后如果在另一个单元格中找到正确的字符串,则转到相应的单元格,将其复制并粘贴到另一个单元格中?当我使用Instr时,我不断地得到一个错误,然后是另一个Instr。任何建议都可以。如果你看到了附件,那么基本上我要做的是首先在michale中找到H,然后复制michale并在一列中搜索它,一旦我在一列中找到它,我就转到相应的列并复制Pick me*粘贴到工作表中的任何位置

     Sub ex_find()

       Dim ws As Worksheet, m As String, lastrow As Long
          Set ws = ActiveWorkbook.Worksheets("Sheet3")
           lastrow = ws.UsedRange.Rows.Count + 1
              For i = 2 To lastrow
                m = ws.Cells(i, 5)
                  If InStr(ws.Cells(i, 5), "h") > 0 Then
                    InStr(ws.Cells(i, 1), "m") = 0

                  End If

             Next 
    End Sub

你的问题使我有点困惑。我想您应该在“F”列的值中搜索一个“h”,当找到时,在“A”列中搜索“F”列中找到的单元格的值。然后你想用一个“对应的单元格”

Sub-ex_-find()
Dim ws作为工作表,m作为字符串,lastrow作为长,myArray()作为变量
设置ws=ActiveWorkbook.Worksheets(“Sheet3”)
lastrow=ws.UsedRange.Rows.Count+1
对于i=1到最后一行
如果InStr(1,ws.Range(“F”和i).Value,“h”)为0,则
使用ws.Range(“a1:a”和lastrow)
Set c=.Find(ws.Range(“F”&i).Value,LookIn:=xlValues)
如果不是,那么c什么都不是
'firstAddress=c.地址
”“是吗
'这是您放置代码以更改“对应单元格”的地方'
'循环而不是c为Nothing,c.Address为firstAddress
如果结束
以
如果结束
接下来我
端接头

很抱歉,他弄糊涂了。在我找到instr之后,我想把这个instr放到另一个单元格中搜索,如果你查看附件,你会明白的。如果我在单元格5中找到第一个字符串,那么我将在单元格1中搜索它,如果我找到匹配的字符串,那么我将转到相应的单元格2,复制“选择我”并将其粘贴到任何空单元格中。对不起,我不下载图片或文件。我对一些事情还是有点困惑。你想在F列中找到“h”的第一个实例,然后在A列中找到相同的值,然后对同一行的B列进行处理吗?不,我不是要你下载它,它在那里,你可以在我的代码下面看到它。所以我在F列中循环,其中包含值(Sam、Blue、Michacle)等。如果我找到h,它是Michacle,我喜欢取Michacle并在A列中搜索它。如果我在A列中找到Michacle,然后转到相应的B列,取值并粘贴到另一个单元格中。是的,我的电脑被封锁的图像,因为他们可以携带黑客病毒。但我改变了上面的答案。它将在“F”列中找到“h”的所有实例,在“A”列中搜索整个值,并允许您对“相应的单元格”执行任何需要的操作。它还将在“A”列中找到该值的所有实例。你可以很容易地将其更改为“F”列或“A”列的第一个实例
Sub ex_find()

    Dim ws As Worksheet, m As String, lastrow As Long, myArray() As Variant
    Set ws = ActiveWorkbook.Worksheets("Sheet3")
    lastrow = ws.UsedRange.Rows.Count + 1

    For i = 1 To lastrow
        If InStr(1, ws.Range("F" & i).Value, "h") <> 0 Then
            With ws.Range("a1:a" & lastrow)
                Set c = .Find(ws.Range("F" & i).Value, LookIn:=xlValues)
                If Not c Is Nothing Then
                    'firstAddress = c.Address
                    'Do
                    'This is where you put your code to change "corresponding cell"



                    'Loop While Not c Is Nothing And c.Address <> firstAddress 

                End If
            End With
        End If
    Next i

End Sub