Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Excel VBA-为什么我的;另存为;不工作?_Vba_Excel - Fatal编程技术网

Excel VBA-为什么我的;另存为;不工作?

Excel VBA-为什么我的;另存为;不工作?,vba,excel,Vba,Excel,我有一个VBA脚本,如果单元格为空,Excel将提示保存文件 这是为了确保模板不被更改。但是,当用户在“另存为”对话框中单击“保存”时,文件不会保存 这是我正在使用的代码: If Worksheets("Input").Range("E2").Value = "" Then Application.EnableEvents = False Application.GetSaveAsFilename InitialFileName:="\\ac35542\Problem Manag

我有一个VBA脚本,如果单元格为空,Excel将提示保存文件

这是为了确保模板不被更改。但是,当用户在“另存为”对话框中单击“保存”时,文件不会保存

这是我正在使用的代码:

If Worksheets("Input").Range("E2").Value = "" Then
    Application.EnableEvents = False
    Application.GetSaveAsFilename InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm"
    Application.EnableEvents = True
    MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
    Worksheets("Input").Select
    Range("E2").Select
End If
为什么文件没有保存?

作为后续操作从

Application.GetSaveAsFilename显示标准的“另存为”对话框 并从用户获取文件名,而不实际保存任何文件名 文件。

改用这个:

Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
    Application.EnableEvents = False
    fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
    Application.EnableEvents = True

    If fileSaveName <> "False" Then
        Application.DisplayAlerts = False
        ThisWorkbook.SaveAs (fileSaveName)
        Application.DisplayAlerts = True
    End If

    MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
    Worksheets("Input").Select
    Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束
作为后续行动

Application.GetSaveAsFilename显示标准的“另存为”对话框 并从用户获取文件名,而不实际保存任何文件名 文件。

改用这个:

Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
    Application.EnableEvents = False
    fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
    Application.EnableEvents = True

    If fileSaveName <> "False" Then
        Application.DisplayAlerts = False
        ThisWorkbook.SaveAs (fileSaveName)
        Application.DisplayAlerts = True
    End If

    MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
    Worksheets("Input").Select
    Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束
作为后续行动

Application.GetSaveAsFilename显示标准的“另存为”对话框 并从用户获取文件名,而不实际保存任何文件名 文件。

改用这个:

Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
    Application.EnableEvents = False
    fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
    Application.EnableEvents = True

    If fileSaveName <> "False" Then
        Application.DisplayAlerts = False
        ThisWorkbook.SaveAs (fileSaveName)
        Application.DisplayAlerts = True
    End If

    MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
    Worksheets("Input").Select
    Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束
作为后续行动

Application.GetSaveAsFilename显示标准的“另存为”对话框 并从用户获取文件名,而不实际保存任何文件名 文件。

改用这个:

Dim fileSaveName
If Worksheets("Input").Range("E2").Value = "" Then
    Application.EnableEvents = False
    fileSaveName = Application.GetSaveAsFilename(InitialFileName:="\\ac35542\Problem Management\Action Plans\ChangeMe.xlsm", FileFilter:="Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
    Application.EnableEvents = True

    If fileSaveName <> "False" Then
        Application.DisplayAlerts = False
        ThisWorkbook.SaveAs (fileSaveName)
        Application.DisplayAlerts = True
    End If

    MsgBox "Please ensure fill in the Problem Reference Number, Problem Title, and Select a Contract", vbExclamation, "PR Reference & Title"
    Worksheets("Input").Select
    Range("E2").Select
End If
Dim fileSaveName
如果工作表(“输入”).Range(“E2”).Value=”“,则
Application.EnableEvents=False
fileSaveName=Application.GetSaveAsFilename(初始文件名:=“\\ac35542\Problem Management\Action plan\ChangeMe.xlsm”,文件筛选器:=“启用Excel宏的工作簿(*.xlsm),*.xlsm”)
Application.EnableEvents=True
如果fileSaveName为“False”,则
Application.DisplayAlerts=False
ThisWorkbook.SaveAs(文件名)
Application.DisplayAlerts=True
如果结束
MsgBox“请确保填写问题参考编号、问题标题,并选择合同”,VBE感叹号,“PR参考和标题”
工作表(“输入”)。选择
范围(“E2”)。选择
如果结束

我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些

对我来说,下面的代码工作得非常好:

ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)

我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些

对我来说,下面的代码工作得非常好:

ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)

我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些

对我来说,下面的代码工作得非常好:

ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)

我认为Dmitry Pavlip的方法很好,但我认为“InitialFileName:=”\ac35542\Problem Management\Action Plans\ChangeMe.xlsm”部分使它的动态性稍差一些

对我来说,下面的代码工作得非常好:

ExportPath = Application.GetSaveAsFilename(FILEFILTER:="Excel Files (*.xlsx), *.xlsx", Title:="")
'Basically, user will specify the path and give it a name and click on Save. It won't get saved until the next line though.
ActiveWorkbook.SaveAs (ExportPath)

GetSaveAsFilename
只返回用户选择的路径和文件名:它实际上不进行任何保存。如果要保存文件,必须调用
SaveAs
。@TimWilliams有没有办法只显示“另存为”提示,以便用户可以修改文档?抱歉,@Tim在发布回答
应用程序对话框(xlDialogSaveAs)时没有看到您的评论.Show
GetSaveAsFilename
仅返回用户选择的路径和文件名:它实际上不进行任何保存。如果要保存文件,必须调用
SaveAs
。@TimWilliams有没有办法只显示“另存为”提示,以便用户可以修改文档?抱歉,@Tim在发布回答
应用程序对话框(xlDialogSaveAs)时没有看到您的评论.Show
GetSaveAsFilename
仅返回用户选择的路径和文件名:它实际上不进行任何保存。你没有