1

我正在尝试编写一个 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. 查找“损坏”的文本</li>
  2. 查找文本“broken”和相邻的单词“pipe”</li>
4

1 回答 1

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对象设置为您正在使用的任何工作表名称。

于 2013-07-01T19:52:57.493 回答