Как указать точку вставки в текстовом документе в vb.net? - PullRequest
0 голосов
/ 12 апреля 2019

Я создаю приложение для редактирования существующего текстового документа.

Код должен удалить абзац на второй странице и заменить его другим, идентифицированным строковой переменной "Direct_introduction".

Проблема в том, что текст вставляется в конец документа, и я не смог вставить его где-либо еще, даже после указания номера абзаца.

If DirectRB.Checked Then
        'introRange.Delete()
        'Dim ODirect_intropara As Word.Paragraph = oDoc.Paragraphs.Add()
        'ODirect_intropara.Range.Font.Name = "Arial Narrow"
        'ODirect_intropara.Range.Font.Bold = CInt(False)
        'ODirect_intropara.Range.Font.Size = 11
        'ODirect_intropara.Format.SpaceAfter = 0
        'ODirect_intropara.Range.Text = Direct_introduction
        'ODirect_intropara.Range.ParagraphFormat.Alignment = 
Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft
        'ODirect_intropara.Range.InsertParagraphAfter()

        introPara = oDoc.Content.Paragraphs.Add
        introPara.Range.Text = Direct_introduction
        introPara.Range.Font.Bold = True
        introPara.Format.SpaceAfter = 24    '24 pt spacing after 
paragraph.
        introPara.Range.InsertParagraphAfter()
        Rng = oDoc.Range(oDoc.Range.Characters.Count - 1, 
oDoc.Range.Characters.Count)
        Rng.InsertAfter(vbCrLf & "More text inserted using the range 
object")


    ElseIf PartnerRB.Checked Then
        MessageBox.Show("you checked Partner")

    End If

1 Ответ

0 голосов
/ 13 апреля 2019

Выполнить поиск для "Direct_introduction" и, если найдено, вставить в текущем местоположении. Например (в VBA):

Sub Demo()
Application.ScreenUpdating = False
With ActiveDocument.Range
  With .Find
    .ClearFormatting
    .Replacement.ClearFormatting
    .Text = "Direct_introduction"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = True
    .MatchWildcards = False
    .Execute
  End With
  If .Find.Found = True Then
    .Text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa." & vbCr & _
      "Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna." & vbCr & _
      " Nunc viverra imperdiet enim." & vbCr & _
      "Fusce est. Vivamus a tellus."
  End If
End With
Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...