VBA Excel宏查找文本并查找下一个相邻单元格

时间:2013-07-01 19:40:58

标签: excel excel-vba excel-formula excel-2010 vba

我正在尝试编写一个VBA Excel宏来创建一个算法,该算法将查找文本并找到下一个相邻的单元格以显示msgbox中的文本,例如:

我解读了句子“建筑物在一楼下面有一根破裂的管道。”进入单独的细胞。使用此代码:

Sub Module3()
'
' Parse text
'

'
    Selection.TextToColumns Destination:=Range("A2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True
End Sub

现在解析句子了。一旦我选择了一个单元格,我如何在msgbox中显示相邻的单元格

  1. 查找文字“破碎”
  2. 查找文本“已损坏”和相邻的单词“pipe”

1 个答案:

答案 0 :(得分:2)

这将满足您的需求:

Sub FindPlusOffset()
    Dim ws As Worksheet
    Dim match As Range
    Dim findMe As String
    Dim findOffset As String

    Set ws = ThisWorkbook.Sheets("Sheet1")
    findMe = "broken"

    Set match = ws.Cells.Find(findMe)
    findOffset = match.Offset(, 1).Value
    MsgBox "The adjacent word to """ & findMe & """ is """ & findOffset & """."
End Sub

如果找不到您要查找的单词,您可能需要添加一些错误处理。您可以将ws对象设置为您正在使用的任何工作表名称。