Hi, i'm trying to automate my report generation which has to be in a Word Document. Because all work is done in Excel my idea is build a report based in a word template. In order to everything be in correct form in the word document i am trying to copy text from a text box in Excel into a text box in word. I came out with the following code but i cannot understand why is not working:
Sub CopyWorksheetsToWord()
Dim wdApp As Word.Application, wdDoc As Word.Document, ws As Worksheet
Dim MyData As DataObject
Application.ScreenUpdating = False
Application.StatusBar = "Creating new document..."
Set wdApp = New Word.Application
tmp = "C:\Documents and Settings\****\tmp_rel_v3.dotm"
Set wdDoc = wdApp.Documents.Add(Template:=tmp)
For Each ws In ActiveWorkbook.Worksheets
Application.StatusBar = "Copying data from " & ws.Name & "..."
'Selecciona o Range que irá copiar para o clipboard
ActiveSheet.OLEObjects("TextBox1").Object.SelStart = 0
ActiveSheet.OLEObjects("TextBox1").Object.SelLength = ActiveSheet.OLEObjects("TextBox1").Object.TextLength
ActiveSheet.OLEObjects("TextBox1").Object.Copy
wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter
Set MyData = New DataObject
MyData.GetFromClipboard
With wdDoc.Shape("texto1").OLEFormat
.Activate
Set myObj = .Object
End With
myObj.Value = MyData.GetText(1)
Application.CutCopyMode = False
wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter
If Not ws.Name = Worksheets(Worksheets.Count).Name Then
With wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range
.InsertParagraphBefore
.Collapse Direction:=wdCollapseEnd
.InsertBreak Type:=wdPageBreak
End With
End If
Next ws
Set ws = Nothing
Application.StatusBar = "Cleaning up..."
' apply print view
With wdApp.ActiveWindow
If .View.SplitSpecial = wdPaneNone Then
.ActivePane.View.Type = wdPrintView
Else
.View.Type = wdPrintView
End If
End With
Set wdDoc = Nothing
wdApp.Visible = True
Set wdApp = Nothing
Application.StatusBar = False
End Sub
When i run this code i allways get an error like this: "Invalid Access to memory location". Can anyone help?
Bookmarks