VBA:在其他文本中搜索文本,返回相邻单元格。循环这个

VBA:在其他文本中搜索文本,返回相邻单元格。循环这个,vba,excel,Vba,Excel,我对VBA非常陌生,并且在很大程度上一直在向SO学习,记录宏,然后将一些代码连接在一起(成功有限) 在Excel中,我在一列中有一个字符串列表让我们调用B,我需要在a中搜索该字符串,这是另一列字符串,可能包含B中的字符串。因此,假设我们从B1开始,当它在a中找到B1所在的行时,它会返回找到的行中的字符串(从C列)(以及D和E列) 本质上,它是一个VLOOKUP(或者我更喜欢INDEXMATCH),但它搜索的不是lookup_值与lookup_范围中的单元格完全相等 在excel公式中,我可以做到

我对VBA非常陌生,并且在很大程度上一直在向SO学习,记录宏,然后将一些代码连接在一起(成功有限)

在Excel中,我在一列中有一个字符串列表让我们调用B,我需要在a中搜索该字符串,这是另一列字符串,可能包含B中的字符串。因此,假设我们从B1开始,当它在a中找到B1所在的行时,它会返回找到的行中的字符串(从C列)(以及D和E列)

本质上,它是一个VLOOKUP(或者我更喜欢INDEXMATCH),但它搜索的不是lookup_值与lookup_范围中的单元格完全相等

在excel公式中,我可以做到:

=如果(ISNUMBER)(搜索(A1,B1),B1,IF(ISNUMBER)(搜索(A1,B2),B2,IF(ISNUMBER)(搜索(A1,B3),B3,…)

但是把它放进一个单元格是不可能的,我知道用VBA做起来更容易;我只是在VBA方面做得不够好。 理想情况下,这将移动到B2并循环,直到找到B中的第一个空单元格

当前错误尝试:

Sub ATTEMPT()
  Dim x As String
  Dim found As Boolean
  ' Select first line of data.
  Range("A2").Select
  ' Set search variable value.
  x = Range("B929")
  ' Set Boolean variable "found" to false.
  found = False
  ' Set Do loop to stop at empty cell.
  Do Until IsEmpty(ActiveCell)
     If InStr(Range("A2:A1000").Value, "BA025") > 0 Then
        found = True
        Exit Do
     End If
     ' Step down 1 row from present location.
     ActiveCell.Offset(1, 0).Select
  Loop  End Sub
我将非常感谢任何帮助。
谢谢。

看一看-这可能会给你一些想法谢谢;我会试试看