仅删除特定位置的字符串列表?

Remove a list of strings in a specific position only?

我需要删除所有找到的(从列表中)位于任何段落第一个位置的单词。

我最接近工作的努力未能始终如一地删除段落第一个位置的单词,偶尔会删除段落其他位置的单词。但是,它在每个 运行-through 上的相同位置都会出现相同的错误。它看起来像这样:

For Each para In docCurrent.Paragraphs
    firstword = para.Range.Words(1)
    Set firstwd = para.Range.Words(1)
    firstchar = para.Range.Characters(1)

    Set searchrange = para.Range.Words(1)
    searchrange.SetRange Start:=firstwd.Start, End:=firstwd.End
    For Each wrdRef In docRef.Words
        If Asc(Left(wrdRef, 1)) > 32 Then
            match = wrdRef
            i = Len(match)

            If Left(firstword, i) = match Then
                With searchrange.Find
                  .Wrap = wdFindStop
                  .Text = wrdRef
                  .Execute Replace:=wdReplaceOne

                End With
            End If
        End If
    Next wrdRef
Next para

如果有人能发现明显的错误或推荐更好(或更有效)的方法,我将不胜感激。

如果我没看错,您不需要使用包含 Find >> Replace 模型的如此复杂的解决方案。您可以使用简单的 Word 对象和 Word 层次结构。检查以下解决方案。

For Each para In docCurrent.Paragraphs
    Set firstWd = para.Range.Words(1)
        For Each wrdRef In docRef.Words
            If Asc(Left(wrdRef, 1)) > 32 Then   '??!!

                'remove spaces and be careful about text vs. binary compare
                If UCase(Replace(firstWd, " ", "")) = UCase(wrdRef) Then

                    firstWd.Text = "YourNewWordHere"

                End If
            End If
        Next wrdRef
Next para