检查 A 列中的哪些(多个)单元格包含 B 列中指定的子字符串?

检查 A 列中的哪些(多个)单元格包含 B 列中指定的子字符串?

AI 列中有提及公司名称的并购交易描述。BI 列中有公司名称,我希望查看 A 列中提及每家公司的名称的位置。

我遇到的问题:B 列中的某些字符串将作为子字符串出现在 A 列中多次,并且我想返回所有实例,而不仅仅是一个。

答案1

尝试这个相当小的宏:

Sub DataLocator()
  Dim nA As Long, nB As Long, i As Long, j As Long, k As Long
  Dim v As String
  nA = Cells(Rows.Count, "A").End(xlUp).Row
  nB = Cells(Rows.Count, "B").End(xlUp).Row

  For i = 1 To nB
    v = Cells(i, "B").Value
    k = 3
    For j = 1 To nA
      If InStr(1, Cells(j, "A").Value, v) > 0 Then
        Cells(i, k).Value = Cells(j, "A").Address(0, 0)
        k = k + 1
      End If
    Next j
  Next i
End Sub

例如:

在此处输入图片描述

宏的安装和使用非常容易:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要使用 Excel 中的宏:

  1. ALT-F8
  2. 选择宏
  3. 触摸运行

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

必须启用宏才能使其工作!

相关内容