Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Using Excel VBA, I am trying to copy data from one Excel
file to one Word file, and cycle back and forth between the two files without opening a new Word file each time I dump data from Excel into Word. When I use CreateObject, I get a new instance of the Word file, but I don't know how to use GetObject to activate an already open Word file since the Word file is not saved yet and at this point is just Document1. I don't want 20 instances of Word, just one, with one Word file to contain all the dumped data. Any ideas? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Stratuser,
One idea is to use the sendkeys command while word is active. You could also activate word with the send keys command. It has worked for me in the past. I hope that helps. Jim |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Isn't there any way to just activate an existing open Word
document from Excel without creating a new one? -----Original Message----- Hi Stratuser, One idea is to use the sendkeys command while word is active. You could also activate word with the send keys command. It has worked for me in the past. I hope that helps. Jim |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Stratuser,
you can try this. Sub copyexceltoword() Set wd = CreateObject("word.application") wd.Application.Visible = True wd.Application.Documents.Open "c:\matt.doc" ' Open your word document Application.Visible = True For a = 1 To 5 Application.Range("a" & a).Copy 'copy data from excel wd.Selection.Paste 'Paste data into word Next a Set wd = Nothing 'Clear the memory. Very important. End Sub let me know if you need further help. --- Message posted from http://www.ExcelForum.com/ |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks, but that doesn't work either, because I don't want
to create a new instance of Word each time I run this subroutine. If I use CreateObject("word.application") I get a new instance every time I call the procedure. -----Original Message----- Stratuser, you can try this. Sub copyexceltoword() Set wd = CreateObject("word.application") wd.Application.Visible = True wd.Application.Documents.Open "c:\matt.doc" ' Open your word document Application.Visible = True For a = 1 To 5 Application.Range("a" & a).Copy 'copy data from excel wd.Selection.Paste 'Paste data into word Next a Set wd = Nothing 'Clear the memory. Very important. End Sub let me know if you need further help. --- Message posted from http://www.ExcelForum.com/ . |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Use GetObject. This will return an existing Word application. If
it returns Nothing, then use CreateObject to create a new instance of Word. E.g., Dim WordObj As Object Set WordObj = GetObject(, "Word.Application") 'note leading comma If WordObj Is Nothing Then Set WordObj = CreateObject("Word.Application") End If -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Stratuser" wrote in message ... Thanks, but that doesn't work either, because I don't want to create a new instance of Word each time I run this subroutine. If I use CreateObject("word.application") I get a new instance every time I call the procedure. -----Original Message----- Stratuser, you can try this. Sub copyexceltoword() Set wd = CreateObject("word.application") wd.Application.Visible = True wd.Application.Documents.Open "c:\matt.doc" ' Open your word document Application.Visible = True For a = 1 To 5 Application.Range("a" & a).Copy 'copy data from excel wd.Selection.Paste 'Paste data into word Next a Set wd = Nothing 'Clear the memory. Very important. End Sub let me know if you need further help. --- Message posted from http://www.ExcelForum.com/ . |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks, that did the trick.
-----Original Message----- Use GetObject. This will return an existing Word application. If it returns Nothing, then use CreateObject to create a new instance of Word. E.g., Dim WordObj As Object Set WordObj = GetObject(, "Word.Application") 'note leading comma If WordObj Is Nothing Then Set WordObj = CreateObject("Word.Application") End If -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Stratuser" wrote in message ... Thanks, but that doesn't work either, because I don't want to create a new instance of Word each time I run this subroutine. If I use CreateObject("word.application") I get a new instance every time I call the procedure. -----Original Message----- Stratuser, you can try this. Sub copyexceltoword() Set wd = CreateObject("word.application") wd.Application.Visible = True wd.Application.Documents.Open "c:\matt.doc" ' Open your word document Application.Visible = True For a = 1 To 5 Application.Range("a" & a).Copy 'copy data from excel wd.Selection.Paste 'Paste data into word Next a Set wd = Nothing 'Clear the memory. Very important. End Sub let me know if you need further help. --- Message posted from http://www.ExcelForum.com/ . . |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How to open Excel/Word/PP file in office 2003 by default? | Excel Discussion (Misc queries) | |||
Word and Excel crash when I try to open a folder to get to a file | Excel Discussion (Misc queries) | |||
Trying to open Excel/Word files error message "Unable to read file | Excel Discussion (Misc queries) | |||
open word file? | Excel Programming | |||
Graph Excel Selection, Open Word File, Embed Graph Into Word | Excel Programming |