0

私はしばらくこれを試してきました。私はもうすぐそこにいますが、私のVBAスキルはこれを成し遂げるには少し足りません. ワークシートに、いくつかのキーワードのすべてのインスタンスを検索して見つける必要があるテキストがあります。

理想的には、2 番目のワークシートの範囲内にキーワードを配置します。私はそれを理解することはできません。以下を使用して固定配列を検索できましたが、ワークシート自体から単語を取得する次のステップに進む方法がわかりません。

Sub X()

Dim vntWords As Variant
Dim lngIndex As Long
Dim rngFind As Range
Dim strFirstAddress As String
Dim lngPos As Long

vntWords = Array("sales", "job")

With ActiveSheet.UsedRange
    For lngIndex = LBound(vntWords) To UBound(vntWords)
        Set rngFind = .Find(vntWords(lngIndex), LookIn:=xlValues, lookat:=xlPart)
        If Not rngFind Is Nothing Then
            strFirstAddress = rngFind.Address
            Do
                lngPos = 0
                Do
                    lngPos = InStr(lngPos + 1, rngFind.Value, vntWords(lngIndex), vbTextCompare)
                    If lngPos > 0 Then
                        With rngFind.Characters(lngPos, Len(vntWords(lngIndex)))
                            .Font.Bold = True
                            .Font.Size = .Font.Size
                            .Font.ColorIndex = 3
                        End With
                    End If
                Loop While lngPos > 0
                Set rngFind = .FindNext(rngFind)
            Loop While rngFind.Address <> strFirstAddress
        End If
    Next
End With

サブ終了

4

1 に答える 1

0

それはあなたに役立つかもしれません

ThisWorkbook.Sheets("name of sheet with search terms").Range("A1:A")

Aこれにより、列のすべての値が配列として提供されます。コードで使用できること。

于 2013-03-18T07:22:59.373 に答える