string - 如何查找字符串中的单词位置(而不是字符位置)

标签 string vba

假设我有一个由空格/连字符分隔的字符串。

例如。带上这些折断的翅膀,学习飞翔。

什么vba函数可以找到单词损坏的位置,应该返回3,而不是字符位置11。

最佳答案

一种解决方案(可能有一种更有效的方法)是分割字符串并迭代返回的数组:

Function wordPosition(sentence As String, searchWord As String) As Long

    Dim words As Variant
    Dim i As Long

    words = Split(sentence, " ")
    For i = LBound(words, 1) To UBound(words, 1)
        If words(i) = searchWord Then Exit For
    Next i

    'return -1 if not found
    wordPosition = IIf(i > UBound(words, 1), -1, i + 1)

End Function

你可以这样调用它:

Sub AnExample()

    Dim s As String
    Dim sought As String

    s = "Take these broken wings and learn to fly"
    sought = "broken"

    MsgBox sought & " is in position " & wordPosition(s, sought)

End Sub

关于string - 如何查找字符串中的单词位置(而不是字符位置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18012485/

相关文章:

vba - 如何让平方符号 (²) 在字符串中显示

java - 需要帮助将代码转换为使用字符串而不是整数

javascript - 如何从文本中删除字符串

vba - 我是否不小心创建了vba竞争条件?

vba - Excel VBA 为多个收件人、抄送和密件抄送撰写电子邮件

VBA将公式插入现有单元格

string - 如何使用 Perl 查找文件中的特定行?

java - 在 Java 中添加多个 Set<String>

c++ - 使用 std::string 作为字符数组

vba - Excel 2003 - VBA 用于循环遍历行中的每个单元格以提供属性/格式