列にリストされている文字列をファイルで検索し、それぞれのファイル名の列に「はい」または「いいえ」とマークします。

列にリストされている文字列をファイルで検索し、それぞれのファイル名の列に「はい」または「いいえ」とマークします。

「A」列に文字列がリストされており、ファイル名は列ヘッダーにリストされています。 「A」列の文字列がファイル内に存在するかどうかを調べ、結果をファイル名列に追加したいと思います。 vba を使用してそれが可能になることを期待しています。

数式「vlookup」を使用しようとしましたが(シートにデータを追加するとき)、計算に時間がかかり、各ファイルには 22K 行があり、100 ファイルだけでもすべての行が 22 万行になります。どなたか助けていただければ幸いです。

テーブル

追加情報

答え1

私はこれで答えを得たサイト期待通りに動作しています。

Sub Demo_StringSearch_txt()
Dim fPath As String: fPath = "C:\test\search\"
Dim strContent As String
Dim intFF As Integer: intFF = FreeFile()
Dim myArr
Dim i As Long, j As Long
myArr = Range("A1", Cells(Cells(Rows.count, 1).End(xlUp).Row, Cells(1, Columns.count).End(xlToLeft).Column)).Value

For i = 2 To UBound(myArr, 2)
    Open fPath & myArr(1, i) For Input As #intFF
    strContent = Input(LOF(intFF), intFF)
    Close #intFF
    For j = 2 To UBound(myArr)
        If InStr(strContent, myArr(j, 1)) > 0 Then
            myArr(j, i) = "Yes"
        End If
    Next
Next

Range("A1").Resize(UBound(myArr), UBound(myArr, 2)) = myArr


End Sub

関連情報