Проблема с доступом к Excel VBA с обновлением Office 365

#excel #vba #ms-access-2010

#excel #vba #ms-access-2010

Вопрос:

Проблема возникает ближе к концу в appXL. Запустите «MTD».

 Public Function mtd_only()
On Error GoTo Err_mtd_only

Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim intStart As Integer
Dim appXL As Excel.Application
Dim RptDt As Date
Dim MoNo As Integer
Dim morningreport As Object
Dim monthtodate As Object
Dim DER As Object
Dim FY As Integer

    Select Case MoNo
Case DLookup("Month", "report dates") > 3
MoNo = DLookup("Month", "report dates")   9
Case Else
MoNo = DLookup("Month", "report dates") - 3
End Select

FY = DLookup("FY", "report dates")

        RptDt = DLookup("Report", "report dates")

        Set dbs = CurrentDb

        Set appXL = New Excel.Application
        
        appXL.Visible = False

'Open the MTD and activate the claims data sheet
        
       Set monthtodate = appXL.Workbooks.Open("C:_testA Daily 2 - FY" amp; FY amp; " MTD" amp; MoNo amp; " " amp; MonthName(Month(RptDt)) amp; " " amp; Year(RptDt) amp; "" amp; MonthName(Month(RptDt)) amp; " " amp; Year(RptDt) amp; " QIDR MTD.XLSM")
        appXL.Worksheets("Claims Data").Select



'Select the data you want to output
        
        Set rst = dbs.OpenRecordset("SELECT * FROM MorningReport;")
        
'======
'Append

'Find the current number of rows, will start from row 2 on a blank sheet though
        
        intStart = appXL.ActiveSheet.Range("A1").CurrentRegion.Rows.count   1
        appXL.ActiveSheet.Range("A" amp; intStart).CopyFromRecordset rst
    
'Select the data you want to output
       
        Set rst = dbs.OpenRecordset("SELECT * FROM [MTD Sales];")
        
'activate the sales data sheet
        
        appXL.Worksheets("Sales Data").Select
        
        
'=========
'Overwrite
        
        appXL.Range("A2:J45500").Select
        appXL.Selection.ClearContents
        appXL.ActiveSheet.Range("A2").Select
        appXL.ActiveSheet.Range("A2").CopyFromRecordset rst
        
        
        If LastWorkDayOfMonth(RptDt) = RptDt Then
                'DoCmd.OpenQuery "Append FYTD Sales", acViewNormal, acReadOnly
            End If
        
'===============================================

'Select the data you want to output
        
        
        Set rst = dbs.OpenRecordset("SELECT * FROM [DER Sales];")
        
'activate the daily sales sheet
        
        appXL.Worksheets("Daily Sales").Select
        
        
'=========
'Overwrite
        
        appXL.Range("A2:E1000").Select
        appXL.Selection.ClearContents
        appXL.ActiveSheet.Range("A2").Select
        appXL.ActiveSheet.Range("A2").CopyFromRecordset rst
        
    Set rst = dbs.OpenRecordset("SELECT * FROM [DRT_Claims];")
        appXL.Worksheets("DRT Claims").Select
        
        intStart = appXL.ActiveSheet.Range("A1").CurrentRegion.Rows.count   1
        appXL.ActiveSheet.Range("A" amp; intStart).CopyFromRecordset rst
        
        
'===============================================
'Save and Format MTD Report
        
        appXL.Run "MTD"
        appXL.ActiveWorkbook.Save
        appXL.Quit
        Set appXL = Nothing
   
'Revive Warnings
DoCmd.SetWarnings True

Exit_mtd_only:
    Exit Function

Err_mtd_only:
    MsgBox Err.Description
    Resume Exit_mtd_only

End Function
 

Комментарии:

1. Какая проблема? Вы ничего не сказали нам о том, что происходит не так…

2. appXL.run «MTD» также не будет запускаться в этом коде. Параметр Сравнить параметр базы данных Явный общедоступный функциональный тест () Затемняет AppXL как Excel. Набор приложений AppXL = Новый Excel. Приложение AppXL.Workbooks. Открыть «C:Location_of_FileFebruary 2021 QIDR MTD.xlsm» с помощью AppXL .visible = true .Запустите «MTD» .ActiveWorkbooksave завершается с помощью Exit_Test: функция завершения функции выхода

3. erik — он не будет запускать appxl.запустить макрос в Excel