我正在尝试使用vba保存excel文件。 这是我的代码:
Sub Save()
With ActiveWorkbook
On Error GoTo message
.SaveAs "G:\BUYING\Food Specials\2. Planning\6. Themes and Seasonal\Christmas\2017\Volume Planning\Volume overviews\SOSP\Ambient Volumes\#" & Range(C5).Value & " - " & Range(C6).Value & ".xls", FileFormat:=56
message:
MsgBox "There is an error"
End With
End Sub
由于某种原因,代码不会保存文件,代码默认为错误。请有人告诉我我做错了什么?
编辑:
实际的excel错误是对象全局失败的方法范围
答案 0 :(得分:0)
错误是由你写的c5而不是“c5”引起的,所以它正在寻找一个以c5的值命名的范围,它是空的,并且没有Range,称为空。 试试这个:
Sub Save()
ActiveWorkbook.SaveAs "G:\BUYING\Food Specials\2. Planning\6. Themes and Seasonal\Christmas\2017\Volume Planning\Volume overviews\SOSP\Ambient Volumes\#" & Range("C5").Value & " - " & Range("C6").Value & ".xls", FileFormat:=56
End Sub
此外,您不需要复杂的错误处理,因为默认行为与您要求的相同:带有一些描述的消息框。所以我也删除了它。但是,如果要执行其他操作来处理错误,则应在错误处理程序的标签之前编写Exit Sub,否则即使成功也会显示错误消息。您还应该恢复错误处理,如下所示:
Sub Save()
On Error GoTo message
ActiveWorkbook.SaveAs "G:\BUYING\Food Specials\2. Planning\6. Themes and Seasonal\Christmas\2017\Volume Planning\Volume overviews\SOSP\Ambient Volumes\#" & Range("C5").Value & " - " & Range("C6").Value & ".xls", FileFormat:=56
On Error GoTo 0
Exit Sub
message:
On Error GoTo 0
MsgBox "There is an error"
End Sub
答案 1 :(得分:0)
您需要使用"
调整范围并添加Exit Sub
以防止调用message:
在不需要时显示msgbox。
Sub Save()
With ActiveWorkbook
On Error GoTo message
.SaveAs "G:\BUYING\Food Specials\2. Planning\6. Themes and Seasonal\Christmas\2017\Volume Planning\Volume overviews\SOSP\Ambient Volumes\#" & Range("C5").Value & " - " & Range("C6").Value & ".xls", FileFormat:=56
Exit Sub
message:
MsgBox "There is an error"
End With
End Sub