savePath = "\\local drive path"
myFileName = savePath & "Workbook Name " & saveDate
Application.DisplayAlerts = False
'MsgBox (myFileName)
wbTarget.Activate
ActiveWorkbook.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
使用上面的代码时,出现错误1004“ object_Workbook的方法SaveAs失败,无法弄清楚原因。我对excel还是比较陌生,但是我已经正确设置了一切。
更新:对不起,应该已经显示了更完整的代码。
Sub SaveAs()
'Save As "Workbook Name"
Dim wbTarget As Workbook
Dim wbThis As Workbook
Dim strName As String
Set wbTarget = Workbooks("Workbook Name")
wbTarget.Activate
Dim myFileName As String
Dim saveDate As String
Dim saveMonth As String
Dim monthNum As String
Dim savePath As String
Sheets("Raw").Select
saveDate = Range("A2").Value
saveMonth = Range("A2").Value
monthNum = Range("A2").Value
savePath = "\\local drive path"
myFileName = savePath & "Riskviews Data " & saveDate
Application.DisplayAlerts = False
'MsgBox (myFileName)
wbTarget.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
End Sub
我将最后一部分更新为“ wbTarget.SaveAs”,但这似乎不起作用。
答案 0 :(得分:1)
问题可能出在ActiveWorkBook
上。当您可以直接直接引用对象时,应避免依赖.Active
,.Activate
和.Select
。
删除wbTarget.Activate
并尝试以下操作
WbTarget.SaveAs Filename:=myFileName, FileFormat:=xlOpenXMLWorkbook
答案 1 :(得分:0)
我可以看到您已尝试调试。 MsgBox myFileName
(注意:否()
)应该已经显示了您要传递给save命令的内容。在上面的代码中,应该是\\local drive pathWorkbook Name
-注意结尾处也有空格。您尚未定义saveDate
,尚未添加扩展名,也未指定文件格式。
有关SaveAs
的更多信息,请参见以下答案。
How to do a "Save As" in vba code, saving my current Excel workbook with datestamp?