Копирование из выделенной области Exel в Word
Добавлено: 11 дек 2006, 13:28
как скопировать значения из выделенной области Ексель в ВОРД? помогите с макросом!!!!!!!
форум программистов
https://www.developing.ru/
Если без всякого наследования форматов, тогдаrum писал(а):как скопировать значения из выделенной области Ексель в ВОРД? помогите с макросом!!!!!!!
Код: Выделить всё
Sub CopyFromExcel()
Dim xlApp As Object, _
xlBook As Object, _
xlSht As Object
On Error GoTo Err_Control
Set xlApp = GetObject(, "Excel.Application.11")
Set xlBook = xlApp.ActiveWorkbook
Set xlSht = xlApp.Activesheet
xlApp.Selection.Copy
xlApp.ActiveCell.Select
Selection.PasteExcelTable False, False, True
Exit_Here:
xlBook.Close
xlApp.Quit
Set xlSht = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Exit Sub
Err_Control:
MsgBox Err.Number & Chr(32) & Err.Description, vbExclamation
Resume Exit_Here
End Sub
Тогда так, только не забудь в Экселе добавить ссылкуrum писал(а):нет это немного не то, мне нужно ну допустим выделил какую нить область в Эксель потом вызываешь макрос в том же Эксель и он тебе открывает документ ворд и вставляет туда выделенную область из Экселя.
Код: Выделить всё
Option Explicit
Sub CopyFromExcel()
Dim wdApp As Object, _
wdDoc As Object, _
fname As String
On Error GoTo Err_Control
Application.Selection.Copy
fname = Application.GetOpenFilename("Word Documents (*.doc), *.doc")
Set wdApp = CreateObject("Word.Application.11")
wdApp.Visible = True
wdApp.Documents.Open Filename:=fname, ReadOnly:=False
wdApp.Documents(fname).Activate
Set wdDoc = wdApp.ActiveDocument
wdApp.Selection.PasteExcelTable False, False, True
wdApp.ActiveDocument.SaveAs Filename:=fname
wdApp.Quit
Set wdDoc = Nothing
Set wdApp = Nothing
Err_Control:
MsgBox Err.Number & Chr(32) & Err.Description, vbExclamation
End Sub
Код: Выделить всё
Sub tt()
' Поставить галку - Tools\References\Microsoft Word X.X Object Library
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Add
Application.Selection.Copy
Call wdDoc.Range.PasteSpecial(, False, wdLine, False, wdPasteOLEObject)
wdApp.Activate
End Sub