您好我在尝试通过任务计划程序运行我的代码时收到1004错误。我可以运行直接从Access执行代码的宏,它工作正常,但从任务计划程序运行时,它将找不到文件路径,错误处理程序启动并通过电子邮件发送给我。有任何想法如何解决这个问题?打开每个excel文件的原因是运行他们的VBA,它只将文件从包含许多复杂公式的另一个excel文件更新为文本。链接到具有所有公式的excel文件证明太慢了。
这是代码。
Option Compare Database
Option Explicit
Public Function UpdateData()
Dim xlApp As Object
Dim mail As CDO.Message
Dim config As CDO.Configuration
On Error GoTo 100
Set xlApp = CreateObject("Excel.Application")
With xlApp
.Application.Visible = False
.Workbooks.Open "V:\DHP\Boards\Access Data\CV1Data.xlsm"
.Workbooks("CV1Data.xlsm").Save
.Workbooks.Open "V:\DHP\Boards\Access Data\CV2Data.xlsm"
.Workbooks("CV2Data.xlsm").Save
.Workbooks.Open "V:\DHP\Boards\Access Data\CV3Data.xlsm"
.Workbooks("CV3Data.xlsm").Save
.Workbooks.Open "V:\DHP\Boards\Access Data\CV4Data.xlsm"
.Workbooks("CV4Data.xlsm").Save
.Workbooks.Open "V:\DHP\Boards\Access Data\602Data.xlsm"
.Workbooks("602Data.xlsm").Save
.Workbooks.Open "V:\DHP\Boards\Access Data\PVGData.xlsm"
.Workbooks("PVGData.xlsm").Save
.Workbooks.Open "V:\DHP\Boards\Access Data\PV24Data.xlsm"
.Workbooks("PV24Data.xlsm").Save
.Workbooks.Open "V:\DHP\Boards\Access Data\ReasonCodes.xlsm"
.Workbooks("ReasonCodes.xlsm").Save
End With
xlApp.Quit
Set xlApp = Nothing
Application.SetOption "Auto compact", True
Application.Quit
Exit Function
100:
Set mail = CreateObject("CDO.Message")
Set config = CreateObject("CDO.Configuration")
config.Fields(cdoSendUsingMethod).Value = cdoSendUsingPort
config.Fields(cdoSMTPServer).Value = "mr.domain.com"
config.Fields(cdoSMTPServerPort).Value = 25
config.Fields.Update
Set mail.Configuration = config
With mail
.To = "First.Last@Domain.com"
.From = "First.Last@Domain.com"
.Subject = "Error Occured - Error Number " & Err.Number
.TextBody = "DHPTables Database -" & Err.Description
.Send
End With
Set config = Nothing
Set mail = Nothing
Application.SetOption "Auto compact", True
Application.Quit
End Function
答案 0 :(得分:0)
我在微软的网站上发现,对于使用"运行用户是否登录的Office产品,这是不可能的。检查。唯一的方法是让用户不断登录。请参阅Mark Burns的回复。