Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保存新创建的VBA工作簿时出现问题_Vba_Excel - Fatal编程技术网

保存新创建的VBA工作簿时出现问题

保存新创建的VBA工作簿时出现问题,vba,excel,Vba,Excel,我正在开始一个新项目,一开始就遇到了麻烦=[。我经常需要从一个非常大的excel工作表中提取特定数据,并为该数据创建一个新的excel工作表。目前,我正在尝试创建一个新工作簿并将其保存到文件路径。我在执行行SaveAs上遇到错误。知道为什么会发生这种情况吗?错误是: 对象“\u工作簿”的“另存为”方法失败 我将提议我可以满足你的需要 这里有一个sub,它可以满足您的需要。因此,首先我建议您调暗所有变量,不要使用activate。而是使用sheet variable,还可以通过单元格而不是范围来访

我正在开始一个新项目,一开始就遇到了麻烦=[。我经常需要从一个非常大的excel工作表中提取特定数据,并为该数据创建一个新的excel工作表。目前,我正在尝试创建一个新工作簿并将其保存到文件路径。我在执行行
SaveAs
上遇到错误。知道为什么会发生这种情况吗?错误是:

对象“\u工作簿”的“另存为”方法失败


我将提议我可以满足你的需要

这里有一个sub,它可以满足您的需要。因此,首先我建议您调暗所有变量,不要使用activate。而是使用sheet variable,还可以通过单元格而不是范围来访问单个值

但您的主要问题可能是您试图使用保留字
Date
。如果您不清楚,请告诉我

Sub save()

Dim filePath As String
Dim dateFromSheet As String
Dim clientName As String
Dim controlPanelSheet As Worksheet
Dim newWorkbookName As String

Set controlPanelSheet = Sheets("Control Panel")

filePath = "c:\Users\sukl\Documents\"

With controlPanelSheet
    dateFromSheet = .Cells(42, "F").Value
    clientName = .Cells(43, "F").Value

End With

ThisWorkbook.SaveAs Filename:=filePath & dateFromSheet & "-" & clientName & ".xls", FileFormat:=xlNormal
newWorkbookName = ThisWorkbook.Name
End Sub

你能用MsgBox显示文件名吗?比如:MsgBox(Path&Date&“-”&Client&“.xls”)你不会碰巧有混合的dat(来自dat=Range(“F42”))和日期(来自Filename:=Path&Date&…)?Elzell是的,我可以(消息框)。这是我的一个输入错误,但它仍然没有执行。对我来说效果很好…您在要保存的文件夹中是否具有适当的写入权限?MsgBox到底显示了什么?将日期计算为路径中的3个文件夹dd-mm-yyyy?请尝试使用格式(日期,“ddmmyyyy”)
Sub save()

Dim filePath As String
Dim dateFromSheet As String
Dim clientName As String
Dim controlPanelSheet As Worksheet
Dim newWorkbookName As String

Set controlPanelSheet = Sheets("Control Panel")

filePath = "c:\Users\sukl\Documents\"

With controlPanelSheet
    dateFromSheet = .Cells(42, "F").Value
    clientName = .Cells(43, "F").Value

End With

ThisWorkbook.SaveAs Filename:=filePath & dateFromSheet & "-" & clientName & ".xls", FileFormat:=xlNormal
newWorkbookName = ThisWorkbook.Name
End Sub