A user has the habit of saving other sheets in a workbook that they use to mail merge from thus changing the active sheet, we agreed that by convention the first sheet should contain the mail merge data rather than specify a sheet name so in the agent
Create Mail Merge
Public Sub New(strXLFilename As String, readOnly As Boolean)
'Create new Excel application instance
Set varXLApp = CreateObject("Excel.Application")
varXLApp.Visible = False
'Open the file - Don't refresh data/graphs, Open Read-Only
varXLApp.Workbooks.Open strXLFilename, 0, readOnly
Set varXLWorkbook = varXLApp.ActiveWorkbook
'@@@@@ Dom 17/10/2013 Set varXLSheet = varXLWorkbook.ActiveSheet
Set varXLSheet = varXLWorkbook.Worksheets(1) ' Get first sheet Dom 17/10/2013
End Sub