当目录中存在同名文件时,“对象_workbook的方法保存失败”
Posted
技术标签:
【中文标题】当目录中存在同名文件时,“对象_workbook的方法保存失败”【英文标题】:"Method saveas of object _workbook failed" when same name file present in directory 【发布时间】:2019-07-27 09:58:52 【问题描述】:如果文件再次保存,我正在尝试将文件保存在目录中,出现 excel 消息。我是 vba 错误处理的新手,卡在这个项目代码中
如果按下“否”,则会给出主题错误。这是我的代码:
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Dim x As String
With Destwb
On Error Resume Next
.SaveAs TempFileName & FileExtStr, FileFormat:=FileFormatNum
If Sheet1.Cells(2, 6) = "All" Then
Exit Sub
End If
'Destwb.Sheets("REC_INT").Range("A1").Select
If Not Sheet1.Cells(2, 6) = "All" Then
x = Sheet1.Range("L3")
With OutMail
.To = Sheet1.Cells(x, 3).Value
.CC = Sheet1.Cells(x, 4).Value
.BCC = ""
.Subject = "Service Record"
.Body = Sheet1.Cells(8, 7).Value
.Attachments.Add Destwb.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
'.Send 'or use
.Display
End With
On Error GoTo 0
.Close savechanges:=False
End If
End With
'Delete the file you have send
'Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Application.Calculation = xlCalculationAutomatic
End Sub
为什么没有跳过错误?
【问题讨论】:
它应该给出错误,因为 VBA 无法保存它。你想跳过错误吗? 是来处理这个错误 在什么意义上处理?你想跳过它吗?问你一个不同的名字来保存?覆盖文件?您的问题不清楚。 是跳过它并继续使用代码,如果没有按下 将此行放在您的代码之上。On Error Resume Next
【参考方案1】:
问题:
On Error Resume Next
在保存文件的行之后
这将继续代码而不保存文件。
解决方案:
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Dim x As String
On Error Resume Next
With Destwb
.Save True
'.SaveAs TempFileName & FileExtStr, FileFormat:=FileFormatNum
If Sheet1.Cells(2, 6) = "All" Then
Exit Sub
Else
x = Sheet1.Range("L3")
With OutMail
.To = Sheet1.Cells(x, 3).Value
.CC = Sheet1.Cells(x, 4).Value
.BCC = ""
.Subject = "Service Record"
.Body = Sheet1.Cells(8, 7).Value
.Attachments.Add Destwb.FullName
'You can add other files also like this
'.Attachments.Add ("C:\test.txt")
'.Send 'or use
.Display
End With
On Error GoTo 0
.Close savechanges:=False
End If
End With
'Delete the file you have send
'Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
【讨论】:
这样做不会附加我的文件;我不想保存而是通过邮件发送,我已经更新了剩余的代码... 您的代码中没有任何地方附加文件 Mate !,您也没有提到您是。编辑您的问题并清楚地解释您想要什么以及正在发生的事情。 刚刚编辑了代码抱歉延迟由于连接不良 如果你只想点击否,为什么会有那行代码?我会说摆脱它。 @UmarFarooq,尝试按F8
运行您的代码,即逐步进行,并说明您遇到问题的位置。以上是关于当目录中存在同名文件时,“对象_workbook的方法保存失败”的主要内容,如果未能解决你的问题,请参考以下文章
运行时错误“1004”:对象“_Workbook”的方法“SaveAs”失败