Это продолжение предыдущего вопроса, который я задал здесь .По сути, мне постоянно приходится извлекать определенный текст из сносок.Этот текст всегда следует за фразой «Извлеченный материал из» и сопровождается;.
В моем предыдущем методе мне пришлось вручную выбирать каждый абзац (медленно / громоздко), и я становился проблематичным, посколькуИногда я хочу прокрутить документ, чтобы что-то проверить.
Поэтому я бы предпочел добавить комментарий к абзацу.Поэтому я внес некоторые изменения, но, похоже, приведенный ниже код игнорирует выделение и добавляет извлеченный текст из моих ВСЕ концевых сносок в документе в поле комментариев, а не только концевые сноски, связанные с выбраннымпараграф.
Что я делаю неправильно?
Во-вторых, и на данный момент менее важно то, что в конечном итоге я хотел бы иметь возможность сравнивать значения, возвращаемые в переменной str, друг с другом, поскольку существует (несколько загадочная) иерархия.Могут ли эти строки быть записаны во временный массив для каждого абзаца и сравниваться со словарем (который определит иерархию) или чем-то еще?
Sub EndNotes_Comment_Each_Paragraph_Loop()
Dim e As Endnote
Dim str As String
Dim lngStart As Long
Dim lngEnd As Long
Dim pCount As Long
Dim i As Long
pCount = ActiveDocument.Paragraphs.Count
For i = 1 To pCount
ActiveDocument.Paragraphs(i).Range.Select
str = ""
For Each e In Selection.Endnotes
lngStart = InStr(1, e.Range.Text, "Extracted material is from ", 1) + 27
lngEnd = InStr(lngStart, e.Range.Text, ";", 1)
str = str & Mid(e.Range.Text, lngStart, lngEnd - lngStart) & vbCrLf
Next e
ActiveDocument.Comments.Add Selection.Range, Text:="This paragraph contains:" & vbCrLf & str
Next i
End Sub