私は 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
(コードの終わり)
コードに他に何を追加する必要がありますか? または、VBA コードの代わりに Excel 数式を使用する方法はありますか (それは素晴らしいことです!)。
ありがとうございます。問題について詳しく説明する必要がある場合はお知らせください。