2017-01-26 3 views
0

Я использую макрос слов, чтобы открыть файл excel и скопировать диапазон, и вставить его в виде таблицы в документ Word. Все работает отлично, за исключением того, что оно вставлено на страницу 1, а не на страницу 6 (где мне это нужно). Один из вариантов - изменить номер абзаца, пока я не найду свой путь к странице 6, но есть ли другой способ (я пробовал номер параграфа 243, и он был размещен в середине страницы 5). Номер абзаца в WordCount не соответствует. Пожалуйста, помогите и заблаговременно.Область макрокоманды Word от Excel и вставка на страницу #

Sub CopyExcelPasteWord() 
    Dim objExcel As New Excel.Application 
    Dim exWb As Excel.Workbook 
    Dim tbl As Excel.Range 
    Dim WordTable As Word.Table 

    Set exWb = objExcel.Workbooks.Open("C:\Users\a222012\Desktop\Standard Bank\2017\FASS\CSS Project\Cash Shared Services\Fees_Contract.xlsm") 
    Set tbl = exWb.Sheets("Device_Selection").Range("A5:G26") 
    tbl.Copy 
    Selection.GoTo wdGoToPage, wdGoToAbsolute, 6 'Go to page 6 

    ThisDocument.Paragraphs(1).Range.PasteExcelTable LinkedToExcel:=False, _ 
     WordFormatting:=False, RTF:=False 

    Set WordTable = ThisDocument.Tables(1) 
    WordTable.AutoFitBehavior (wdAutoFitWindow) 

    exWb.Close 

    Set exWb = Nothing 
End Sub 
+1

Я нашел решение моей проблемы. Добавьте закладки в документ слова, в который вы хотите вставить. Затем вместо: 'ThisDocument.Paragraphs (1) .Range.PasteExcelTable' просто использовать' ThisDocument.Bookmarks («BookMark_Name»). Range.PasteExcelTable' – KoderM16

+0

Hi KoderM. Это поможет администрации сайта, а также другим пользователям, если вы поместите свое решение в «Ответ», а затем отметьте его как ответ :-) –

+0

HI @CindyMeister. Выполнено по запросу :) – KoderM16

ответ

0

Решение вышеуказанного заключается в использовании закладок в Word. Перейдите в строку в Word, вы хотите скопировать текст/таблицу или что-нибудь из Excel и вставить закладку (и дать ей имя).

Затем используйте следующий код для вставки в эту закладку:

Sub CopyExcelPasteWord() 
Dim objExcel As New Excel.Application 
Dim exWb As Excel.Workbook 
Dim tbl As Excel.Range 
Dim WordTable As Word.Table 

Set exWb = objExcel.Workbooks.Open("Place path to file here including file name and extension") 
Set tbl = exWb.Sheets("SheetNameHere").Range("RangeHere") 
tbl.Copy 


ThisDocument.Bookmarks("EnterBookmarkNameHere").Range.PasteExcelTable LinkedToExcel:=False, _ 
WordFormatting:=False, RTF:=False 

'This next part just sets the table to fit across the page. The number in the bracket refers to the table 1 in the document. Change it accordingly. 

Set WordTable = ThisDocument.Tables(1) 
WordTable.AutoFitBehavior (wdAutoFitWindow) 

exWb.Close 

Set exWb = Nothing 
End Sub 
Смежные вопросы