使用VBA在EXCEL中search特定单词

林初学Excel VBA我的问题是,如果我有像"MyNameIsHammadAndImFromIreland"单元格中的string。 所有的单元格都有string/句子,但是没有空格。 如何find单元格是否包含单词"Ireland"

你不需要VBA,只需要使用一个公式:

 =IF(LEN(SUBSTITUTE(A1,"Ireland",""))<LEN(A1),"Word Found","Word NOT found") 

如果你真的想要VBA那么:

 hasWord = InStr(Range("A1").Value, "Ireland") > 0 '// returns TRUE or FALSE 

下面的VBA代码将遍历给定的工作表中使用的单元格,并find任何符合给定的条件。 最后,会显示一个消息框,显示包含search项的单元格列表。

此function相当于使用“查找全部”选项时您可以select当您使用正常查找function通过按CTRL + F可用。

 Option Explicit Private Sub Find() Dim rngResult As Range Dim strToFind As String 'Set to your desired string to find strToFind = "Ireland" 'If the string you are searching for is located in 'the worksheet somewhere, you can set the value 'like this: strToFind = Worksheets("Sheet1").Range("A1").Value 'This assumes your search term is in cell A1 of the 'Sheet1 worksheet. 'Look in the used range of a given worksheet 'Change Sheet1 to match your worksheet name With Worksheets("Sheet1").UsedRange 'Find the first cell that contains the search term Set rngResult = .Find(What:=strToFind, LookAt:=xlPart) 'If it is found, grab the cell address of where the 'search term can be found If Not rngResult Is Nothing Then Dim firstAddress As String, result As String firstAddress = rngResult.Address 'Loop through the rest of the cells until returning 'to the first cell that we had a match in. Do 'Record the cell address of the match 'to the result string result = result & rngResult.Address & "," 'Go to next cell containing the search term Set rngResult = .FindNext(rngResult) 'Exit the loop when we reach the starting point Loop While rngResult.Address <> firstAddress 'Output the list of cells that contain the string to find MsgBox "Found """ & strToFind & """ in cell(s): " & result End If End With End Sub 

确保将strToFind设置为所需的string,并将Sheet1更改为与您要search的任何一张表的名称相匹配。