VBA копирует диапазон страниц из текстового документа и вставляет значения, соответствующие формату - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть код, который копирует диапазон страниц документа, создает новый лист и вставляет туда данные.Однако он не соответствует формату копируемого слова doc.См. Код ниже.

Я попытался изменить selection.copy на selection.copyFormat, но это просто копирование действительного кода VBA и вставка его в текстовый документ.

Sub selectpages()
  Dim rgePages As Range
  ThisDocument.Activate

  Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=196
  Set rgePages = Selection.Range
  Selection.GoTo What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=207
  rgePages.End = Selection.Bookmarks("\Page").Range.End
  rgePages.Select
  Selection.Copy
  Set objNewDoc = Documents.Add
  Selection.PasteAndFormat (wdFormatPlainText)
  objNewDoc.SaveAs FileName:="C:\Users\GP8535\Desktop\Word Doc" & "\" & "SB 59_test" & ".docx"
  objNewDoc.Close
End Sub

1 Ответ

1 голос
/ 24 апреля 2019

Нет необходимости активировать или выбирать что-либо.Попробуйте:

Sub CopyContent()
  Dim Rng As Range, RngTmp As Range, wdDoc As Document
  With ThisDocument
    Set Rng = .Range.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=196)
    Set RngTmp = .Range.GoTo(What:=wdGoToPage, Which:=wdGoToAbsolute, Count:=207)
    Set RngTmp = RngTmp.GoTo(What:=wdGoToBookmark, Name:="\Page")
    Rng.End = RngTmp.End: Set RngTmp = Nothing
  End With
  Set wdDoc = Documents.Add
  With wdDoc
    Rng.Copy
    .Range.Characters.Last.PasteAndFormat Type:=wdFormatOriginalFormatting
    .SaveAs FileName:="C:\Users\GP8535\Desktop\Word Doc\SB 59_test.docx"
    .Close
  End With
  Set Rng = Nothing
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...