我是 VBA 新手,在 Excel 中找不到内置公式来准确返回我正在寻找的内容。我正在搜索一列 AN (AN1:AN80627),它是一个项目描述,所以它是一个句子。我在 BD (BD1:BD34) 列中有一个项目列表,我想查看是否在项目描述中找到任何项目。
一些示例项目是:HDG46a、HDG46、HDG46b
目前我的 VBA 代码在 C 列中返回:
HDG46aHDG46
如何让 C 列仅返回最长的项目,例如:
HDG46a
它正在查找所有匹配项,但我希望它找到最长的字符匹配项。我当前的 VBA 代码是:
Sub FindItems()
Dim i As Long, j As Long
Dim ItemName As String
Dim FirstColumn As Integer
Range("Bd2:Bd100000").ClearContents
For i = 1 To 34
ItemName = Sheets("ItemList").Cells(i + 1, 2).Value
For j = 1 To 80627
If InStr(1, Range("AN1").Offset(j, 0).Value, ItemName, vbTextCompare) > 0 Then
Range("Bd1").Offset(j, 0).Value = Range("Bd1").Offset(j, 0).Value & ItemName
End If
Next j
Next
End Sub
(代码结束)
我还需要在代码中添加什么?或者有没有办法使用 excel 公式而不是 VBA 代码(那太好了!)?
谢谢,如果我需要更好地解释这个问题,请告诉我。