I would like to find out if anyone can help me. I am not completely computer literate so if responding please make it as simple as possible.
I was using macro on an excel spreadsheet (windows 7) to produce invoices; which when run produced a word and pdf file. I have just changed to a windows 10 laptop and it is no longer working and I cant contact the person who initially wrote the code for me (below):
Sub merge1record_at_a_time() '
' merge1record_at_a_time Macro
'
'
Dim fd As FileDialog
'Create a FileDialog object as a Folder Picker dialog box.
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
With fd
'Use the Show method to display the Folder Picker dialog box and return the user's action.
'The user pressed the button.
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
'vrtSelectedItem is aString that contains the path of each selected item.
'You can use any file I/O functions that you want to work with this path.
'This example displays the path in a message box.
SelectedPath = vrtSelectedItem
Next vrtSelectedItem
Else
MsgBox ("No Directory Selected. Exiting")
Exit Sub
End If
End With
'Set the object variable to Nothing.
Set fd = Nothing
Application.ScreenUpdating = False
MainDoc = ActiveDocument.Name
'ChangeFileOpenDirectory SelectedPath
For i = 1 To ActiveDocument.MailMerge.DataSource.RecordCount
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = i
.LastRecord = i
.ActiveRecord = i
docname = .DataFields("PATIENT_NAME_").Value & " " & .DataFields("Company_name").Value _
& " " & .DataFields("Invoice_Number").Value & ".docx" ' ADDED CODE - Use ".docx" for Word Documents
docname2 = .DataFields("PATIENT_NAME_").Value & " " & .DataFields("Company_name").Value _
& " " & .DataFields("Invoice_Number").Value & ".pdf"
End With
.Execute Pause:=False
Application.ScreenUpdating = False
End With
'*****************************************************************
'** NOTE: \/\/\/\/ BELOW IS TO SAVE AS A WORD DOCUMENT \/\/\/\/ **
'*****************************************************************
ActiveDocument.SaveAs FileName:=docname, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
'ActiveDocument.Close
'*****************************************************************
'** NOTE: \/\/\/\/ BELOW IS TO SAVE AS A PDF \/\/\/\/ **
'*****************************************************************
'set OpenAfterExport to False so the PDF files won't open after mail merge
ActiveDocument.ExportAsFixedFormat OutputFileName:=docname2, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
Windows(MainDoc).Activate
Next i
Application.ScreenUpdating = True
End Sub
The error I am getting is Run-Time Error 5941 - requested members of the collection does not exist.
Please let me know if you can help or can see an error in the code? The line that is showing the error is:
Windows(MainDoc).Activate
Kind Regards,
Joseph