I have written a vba code to create envelopes in word.
I am taking All the details from outlook and creting envelopes forthose in word.
My code is working on xp(office 2003), But not on Windows 2000 prof.(office 2000).
Code:Dim oApp As Word.Application Dim oDoc As Word.Document 'Start a new document in Word Set oApp = CreateObject("Word.Application") Set oDoc = oApp.Documents.Add With oDoc.MailMerge oApp.DisplayAlerts = False 'Insert the mail merge fields temporarily so that 'you can use the range containing the merge fields as a layout 'for your envelopes -- to use this as a layout, you can add it 'as an AutoText entry. With .Fields .Add oApp.Selection.Range, "Contact_Name" oApp.Selection.TypeParagraph .Add oApp.Selection.Range, "Address" oApp.Selection.TypeParagraph .Add oApp.Selection.Range, "City" oApp.Selection.TypeText "," .Add oApp.Selection.Range, "State" oApp.Selection.TypeText " " .Add oApp.Selection.Range, "Postal_Code" oApp.Selection.TypeParagraph .Add oApp.Selection.Range, "Country" End With Dim oAutoText As Word.AutoTextEntry Set oAutoText = oApp.NormalTemplate.AutoTextEntries.Add("MyEnvelopeLayout", oDoc.Content) oDoc.Content.Delete 'Merge fields in document no longer needed now 'that the AutoText entry for the envelope layout 'has been added so delete it. 'Set up the mail merge type as mailing envelopes and use 'a tab-delimited text file as the data source. .MainDocumentType = wdEnvelopes .OpenDataSource Name:=CC 'Specify your data source here addr = lstenvelopes.Text ice = Left(addr, Len(addr) - InStr(addr, "(")) sp = Trim(ice) oDoc.MailMerge.MainDocumentType = wdEnvelopes oDoc.Envelope.Insert ReturnAddress:=" " oDoc.Envelope.DefaultSize = sp oApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft oApp.Selection.TypeText txtAddress.Text 'Create the new document for the envelopes using the AutoText entry oDoc.Envelope.Insert Address:="", _ AutoText:="MyEnvelopeLayout" 'Execute the mail merge to generate the envelopes. .Destination = wdSendToNewDocument .Execute 'Delete the AutoText entry you added oAutoText.Delete End With
I am getting error on .execute
Run-time error '4605':
This method or property is not availale bcause the current mail merge main document needs a datasource.
What would be the problem?




Reply With Quote