#1
|
|||
|
|||
Why it works but the macro is error in VB?
The macro runs well but when I press F5 in VB, it always returns "runtime error: 462" when it comes to the saveAs method.
Code:
Private Sub copytoWord_Click() Dim AppWord As Word.Application Set AppWord = CreateObject("Word.Application") AppWord.Visible = True Sheets("Sheet1").Range("A1:B4").Copy AppWord.Documents.Add AppWord.Selection.Paste Application.CutCopyMode = False With ActiveDocument .SaveAs2 "C:\Users\Tin\Desktop\" & "Book1", wdFormatDocumentDefault End With Set AppWord = Nothing End Sub |
#2
|
||||
|
||||
Hi Tinfanide,
The error is probably because you're not telling the calling App that it's AppWord's ActiveDocument you want to save. Try something along the lines of: Code:
Private Sub copytoWord_Click() Sheets("Sheet1").Range("A1:B4").Copy Dim AppWord As Word.Application Set AppWord = CreateObject("Word.Application") With AppWord .Visible = True .Documents.Add .Selection.Paste .CutCopyMode = False .ActiveDocument.SaveAs2 "C:\Users\Tin\Desktop\" & "Book1", wdFormatDocumentDefault .Quit End With Set AppWord = Nothing End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Excel reports:
User-defined type not defined |
#4
|
|||
|
|||
I forgot to add MS Word Object Library.
|
#5
|
|||
|
|||
Code:
Private Sub CopyToWord() Dim arr As Variant arr = Array("A", "B", "C") With ActiveSheet .Cells.Clear For x = 1 To 3 .Range(arr(x - 1) & "1").Value = x Next x .Range("A1:C1").Copy End With Dim AppWord As Word.Application Set AppWord = CreateObject("Word.Application") With AppWord .Visible = True .Documents.Add .Selection.Paste End With ''''''''''''''''''''''''''' With AppWord.ActiveDocument.Tables(0) .Delete End With ''''''''''''''''''''''''''' Set AppWord = Nothing End Sub Reported "Application defined or object defined error" I remember I've learnt to set variable for the table But here I don't know how to select the table in Word from Excel VBA And I want to select the table as the .Paste command auto copy the Excel data to Word in a table format I want to do something to the table like deleting it, adding borders or some styles to it So I want to ask how I can control the word table from Excel VBA Many thanks. |
#6
|
||||
|
||||
Hi Tinfanide,
The line: Dim AppWord As Word.Application is only relevant if you've already set a reference to Word. Try: Code:
Private Sub CopyToWord() Dim arr As Variant, x As Long, AppWord As Object Set AppWord = CreateObject("Word.Application") arr = Array("A", "B", "C") With ActiveSheet .Cells.Clear For x = 1 To 3 .Range(arr(x - 1) & "1").Value = x Next x .Range("A1:C1").Copy End With With AppWord .Visible = True .Documents.Add With .ActiveDocument .Range.Paste .Tables(1).Delete '.Close SaveChanges:=False End With '.Quit End With Set AppWord = Nothing End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Simple VBA macro error | Formulayeti | PowerPoint | 1 | 12-09-2011 10:02 PM |
Runtime Error 4120 in Word 2007 macro | Frankwlc | Word | 5 | 11-28-2011 01:54 AM |
Works to word | Janette | Word | 1 | 11-12-2011 08:23 AM |
Macro Error 5174 | muster36 | Word VBA | 0 | 08-12-2011 03:34 AM |
Converting from Works | Menno Hershberger | Office | 0 | 09-01-2010 11:33 PM |